Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte nach einem bestimmten Wert überprüfen

Spalte nach einem bestimmten Wert überprüfen
15.12.2018 23:53:51
Domi
Hallo zusammen,
Vorab, ich habe so gut wie keine VBA Kenntnisse.
Mein Problem:
In Tabelle1 gibt es einen Wert, der sich immer ändert, also eine Variable.
Diese Variable soll durch den unten stehenden Code in Tabelle2 mit den Werten in Spalte A verglichen werden.
Wenn er gefunden wird, soll sich der Wert in Spalte M in der selben Zeile des Wertes um den Wert 1 erhöht werden.
(Auch könnte die Schleife eigentlich abbrechen, sobald ein richtiger Wert gefunden wird, da es diesen Wert nur einmal in der Tabelle2 geben kann)
Wenn der Wert nicht gefunden wird, dann soll der Code ganz unten ausgeführt werden:
Also eine neue Zeile soll eingefügt werden + es werden ein paar Werte aus Tabelle1 übernommen.
Sub intabelle()
Dim Variable As String
Dim boo As Boolean
boo = False
Dim lngRow As Long, A As Long
'Variable kommt aus Tabelle 1
Variable = Worksheets("Tabelle1").Range("B2").Value 'Dieser Wert ändert sich immer
'Das hier soll in Tabelle 2 passieren
lngRow = Cells(Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
For A = lngRow To 1 Step -1
If Cells(A, 1) = Variable Then
boo = True
Cells(A, 13).Value = Cells(A, 13).Value + 1
End If
Next
Application.ScreenUpdating = True
'Das hier soll nur passieren, wenn er oben keinen Wert in Tabelle2 Spalte A gefunden  _
hat
If boo = False Then
Worksheets("Tabelle2").Rows(2).Insert Shift:=xlDown, CopyOrigin:= _
xlFormatFromRightOrBelow
Worksheets("Tabelle2").Range("A2").Value = Worksheets("Tabelle1").Range("B2")
Worksheets("Tabelle2").Range("M2").Value = 1
End If
End Sub
Jetzt habe ich zwei Probleme: Es scheint, dass die Variable nicht überschrieben werden kann:
Angenomme sie bekommt erst den Wert 1, dann ändert er sich nicht mehr, egal welchen Wert ich in Tabelle1 eingebe.
Das zweite Problem ist, dass in Tabelle2 sich der Wert in Splate M nicht um 1 erhöht, wenn der Eintrag gefunden wird.
Vielleicht, weil sich die Schleife nicht auf Tabelle2 bezieht!?
(Der Code wird in Tabelle1 ausgeführt)
Schon mal vielen Dank im vorraus
Grüße
Domi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte nach einem bestimmten Wert überprüfen
16.12.2018 01:50:23
Domi
Ok,
Worksheets("Tabelle2").Activate scheint beide Probleme zu beheben.
Allerdings wechselt er automatisch in Tabelle2.
Könnte man das anders lösen?
Ansonsten füge ich am Ende einfach noch
Worksheets("Tabelle1").Activate
hinzu, um bei Tabelle1 zu bleiben
AW: Spalte nach einem bestimmten Wert überprüfen
16.12.2018 01:50:42
Domi
Ok,
Worksheets("Tabelle2").Activate scheint beide Probleme zu beheben.
Allerdings wechselt er automatisch in Tabelle2.
Könnte man das anders lösen?
Ansonsten füge ich am Ende einfach noch
Worksheets("Tabelle1").Activate
hinzu, um bei Tabelle1 zu bleiben
AW: Spalte nach einem bestimmten Wert überprüfen
16.12.2018 09:37:46
Gerd
Hallo Domi!
'Variable kommt aus Tabelle 1

Variable = Worksheets("Tabelle1").Range("B2").Value 'Dieser Wert ändert sich immer

'Das hier soll in Tabelle 2 passieren
lngRow = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
For A = lngRow To 1 Step -1
If Worksheets("Tabelle2").Cells(A, 1) = Variable Then
boo = True
Worksheets("Tabelle2").Cells(A, 13).Value = Worksheets("Tabelle2").Cells(A, 13).Value + 1
End If
Next
Application.ScreenUpdating = True
Soll der Code nur in einem bestimmten Blatt laufen, musst du auf dieses immer referenzieren,
dann kann die Aktivierung entfallen.
Wann ändert sich der Wert für die "Variable" u. wodurch?
Dein Code fragt die Zelle einmal vor der Schleife ab.
Gibt es in Tabelle2 Spalte A stets nur einen oder keinen Treffer, kannst du den Vergleich ohne
Schleife mit Application.Match oder der Find-Methode machen.
Gruß Gerd
Anzeige
AW: Spalte nach einem bestimmten Wert überprüfen
16.12.2018 21:28:18
Domi
Die Variable ändert sich immer, wenn jemand in eine bestimmte Zelle in Tabelle1 den Wert ändert.
Der Code wird auch nur druchlaufen, wenn sich etwas in der Zelle geändert hat (Change)

"Gibt es in Tabelle2 Spalte A stets nur einen oder keinen Treffer, kannst du den Vergleich ohne
Schleife mit Application.Match oder der Find-Methode machen."

Aber funktioniert das damit auch so wie in meinem Code?
Also wenn zum Beispiel in Splate A Zeile 50 der Wert gefunden wurde, soll in der selben Zeile 50 ein Wert in Spalte G geändert werden?
Wenn ja, wie würde der Code dazu aussehen?
Anzeige
AW: Spalte nach einem bestimmten Wert überprüfen
16.12.2018 21:48:14
Gerd
Moin,
Spalte 13 = Spalte M. Spalte G = Spalte 7
Für nicht gezeigten Code kann ich keine Garantien abgeben.
Gruß Gerd

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige