Werte per Makro an Zellen senden
#1
Hallo liebes Forum,

ich hab da mal eine Frage wo ich bis heute noch keine Lösung gefunden habe

Ich habe eine Excel Datei. In einem Tabellenblatt befindet sich eine Liste mit Namen. Beispiel A1-A40 sind Namen.
In die Spalte B1-B40 sollen nun Noten rein ( also ein Zahlenwert )

Die Note wird in einem anderen Tabellenblatt berechnet. Hierzu gibt es ein kleines Programm. In Zelle B2 kann ich hier mittels Dropdown die entsprechenden Namen aus dem ersten Tabellenblatt auswählen. In Zelle B40 wird dann die entsprechende Note berechnet.

Bisher muss diese Note manuell in das andere Tabellenblatt beim entsprechenden Namen eingetragen werden.

Ich hab jetzt schon mit Makros rumgespielt, aber bisher hab ich keine Lösung dafür. Schön wäre z.b. ein Makro welches den Wert aus Zelle B40 nimmt und ihn neben dem entsprechenden Namen im anderen Tabellenblatt einträgt.

Zusammengefasst nochmals. In Blatt 2 steht ein Name und eine Note. In Blatt 1 stehen alle Namen. Nun soll mittels Makro die Note in das erste Tabellenblatt in die Zelle neben dem Namen geschrieben werden

Hat da jemand eine Idee wie das geht ? 

P.S. Fit bin ich in den Makros nicht

Vielen Dank an alle schon mal
Top
#2
Hallo,

auch hier würde eine Beispieldatei beim Helfen helfen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo,

danke für die Antwort.

Im Anhang eine Beispieldatei


Angehängte Dateien
.xlsx   beispieldatei.xlsx (Größe: 11,38 KB / Downloads: 9)
Top
#4
Hallo,

unten stehenden Code in das Code Fenster der Tabelle2 einfügen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim varI
   If Target.Count = 1 Then
      If Target.Address(0, 0) = "B2" Then
         With Sheets("Tabelle1")
            varI = Application.Match(Target, .Range("A1:A40"), 0)
            If IsNumeric(varI) Then
               .Cells(varI, 2) = Range("B40").Value
            End If
         End With
      End If
   End If
End Sub

Bei Änderung der Zelle B2 in Tabelle2, wird der Inhalt dieser Zelle in Tablle1 A1:A40 gesucht.
Bei Treffer wird der Inhalt der Zelle B40 aus Tabelle2 in Tabelle1 in die Nachbarzelle der Fundstelle geschrieben.
Gruß Atilla
Top
#5
Danke für den Code,

wenn ich ihn ausführen will bekomme ich allerdings als Fehlermeldung

Laufzeitfehler 424
Objekt erforderlich


Hat jemand eine Idee ?
Top
#6
Hallo,

welche Codezeile ist markiert?
Gruß Stefan
Win 10 / Office 2016
Top
#7
Diese Zeile wird markiert

Code:
  If Target.Count = 1 Then
Top
#8
Hallo,

der Code wird nicht manuell gestartet.
Gehe wie folgt vor:
-rechts klick auf den Tabellenreiter "Berechnung"
-im erscheinenden Kontextmenü "Code anzeigen" wählen
-im erscheinenden Codefenster den von mir gezeigten Code hinein kopieren.

Sobald Du jetzt in der Tabelle "Berechnung" den Wert der Dropdownzelle änderst, also einen Namen auswählst,
wird der Code automatisch gestartet.

Also, nachdem der Code eingefügt wurde änder einen namen und schau dann nach, was hinter dem Namen in Tabelle "Zusammenfassung" steht.

@Stefan
schön von Dir zu lesen.
Gruß Atilla
Top
#9
Hallo Atilla,

zuerst mal danke für die Hilfe.

Wäre es theoretisch auch möglich zuerst den Namen zu wählen das Makro dann manuell mit einem Steuerelement zu starten.

Ich hatte es mir so erhofft das ich den Namen Auswähle, dann die Note berechne und dann quasi auf ,,Senden,, drücken kann und dann erst der Wert in die andere Tabelle übernommen wird.
Top
#10
Hallo,

ist für mich zwar fehleranfälliger aber teste mal:

Code:
Sub übertragen()
   Dim varI
   If ActiveSheet.Name = "Berechnung" Then
      With Sheets("Zusammenfassung")
         varI = Application.Match(Range("B2"), .Range("A1:A40"), 0)
         If IsNumeric(varI) Then
            .Cells(varI, 2) = Range("B9").Value
         End If
      End With
   End If
End Sub
Gruß Atilla
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste