Clever-Excel-Forum

Normale Version: Zelleinträge per Makro, zwischen Arbeitsblättern bedingt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich freue mich dieses Forum gefunden zu haben.

Sicher könnt Ihr mir bei meinem ersten Thread hier weiterhelfen.
Ich möchte per Makro die folgende Problemstellung lösen:
  • Wenn auf Tabellenblatt "X" in einer beliebigen Zelle von Spalte A, Spalte B oder Spalte C der Text "O" auftaucht,
  • dann soll auf Tabellenblatt "Y" in derselben Zeile in der Zelle von Spalte D der Text "O" ausgegeben werden.
Ich habe verschiedene Ansätze probiert, es aber nicht hinbekommen.
Und die Suchbegriffe zur Problemstellung sind derart allgemein, dass ich alles Mögliche finde, nur keine Lösung.

Wie könnte ein Code für ein solches Makro aussehen?

Vielen Dank und viele Grüße
Hallo

Code:
Sub Tabellen_vergleichen()
Dim TY As Worksheet, j, lz1 As Long
Set TY = Worksheets("yyyy")  'Bitte Name einsetzen

With Worksheets("xxxx")       'Bitte Name einsetzen
     lz1 = .Cells(Rows.Count, 1).End(xlUp).Row
     'Tabelle Y Spaltz D vorher IMMER löschen??
     TY.Range("D2:D" & Rows.Count).ClearContents
     
     For j = 2 To lz1
        If .Cells(j, 1) = "O" Or .Cells(j, 2) = "O" Or .Cells(j, 3) = "O" Then
           TY.Cells(j, 4) = "O"
        End If
     Next j
End With
End Sub

mfg  Gast 123
Danke Dir!

Wow, das hätte ich ja niemals so hinbekommen.

Eine Frage noch: Wenn ich diese Prozedur in ein bestehendes "großes" Sub Makro einfügen möchte, kann ich dann einfach den Code ab


Code:
Dim TY As Worksheet, j, lz1 As Long

an der entsprechenden Stelle einfügen?
Hallo

Dim kann man auch mitten im Blatt setzen, ich setze es lieber immer ganz oben nach Sub Makro ....
Die For Next Schleife kannst du an jede beliebige Stelle im Code einfügen. Da wo es für dich am sinnvollsten ist.

mfg Gast 123