Microsoft Excel

Herbers Excel/VBA-Archiv

Wenn Zelle = C1, dann andere Zelle = D1

Betrifft: Wenn Zelle = C1, dann andere Zelle = D1 von: Christian
Geschrieben am: 12.08.2014 22:17:31

Hallo alle zusammen,

ich hoffe jemand hat eine Idee, wie man folgendes Prolem lösen kann.
Ich suche eine Möglichkeit, 2 Texte in C1 und D1 zu schreiben.
Der Text in C1 steht bereits an mehreren Stellen im Bereich E1:CP92, der Text in D1 ist neu in der Tabelle.
Wenn das Ganze fertig ist, soll dann in der Zelle rechts von jeder Zelle in der der Text von C1 steht, der Text von D1 stehen.

Hat da jemand eine Idee, die mir ersetzt die Texte von Hand zu suchen und dann jedesmal zum kopieren die Texte in der Zwischenablage zu wechseln, ihn von Hand einzufügen, dann die nächste Stelle suchen, usw. usw.

Vielen Dank
Christian

  

Betrifft: AW: Wenn Zelle = C1, dann andere Zelle = D1 von: Fritz
Geschrieben am: 12.08.2014 23:13:55

Hallo

Sollte wohl in etwa so gehen:

Sub ReplaceD()

Dim Z% 'Zeilenloop
Dim S% 'Spaltenloop

Z = 1 'Zeile 1
S = 5 'Spalte E

While (S < 95)

While (Z < 93)

If (Cells(Z, S) = Range("C1")) Then
Cells(Z, S + 1) = Range("D1")
End If


Z = Z + 1
Wend
S = S + 1
Z = 1
Wend

End Sub
Gruss


  

Betrifft: AW: Wenn Zelle = C1, dann andere Zelle = D1 von: Christian
Geschrieben am: 13.08.2014 07:55:16

Hallo Fritz,

das sieht an sich gut aus, ich hab nur blöderweise eines vergessen, wenn jetzt der zu suchende _ Text in Spalte CP steht, wird der einzufügende Text in Spalte CQ geschrieben, dass hieße wenn ich das Makro nochmal ausführen will mit anderen Texten, wäre die letzte zu prüfende Spalte (=letzte Spalte mit Inhalt) nicht mehr CP sondern CQ, gibts ne Möglichkeit, auch das mit dem Makro abzufangen? genauso den Fall, wenn ich mal noch Zeilen einfügen sollte und damit irgendwann mal Zeile 92 nicht mehr die letzte Zeile der Tabelle ist? Ich denke jetzt an einen Mechanismus der die letzte Zeile bzw. Spalte sucht, nicht daran das

S<95
und

Z<93
beliebig zu erhöhen, weil das ja sicher die Berechnungsdauer unnötig in die Höhe treibt.

Gruß
Christian


  

Betrifft: AW: Wenn Zelle = C1, dann andere Zelle = D1 von: Rudi Maintaire
Geschrieben am: 13.08.2014 10:04:43

Hallo,

Sub aaa()
  Dim rLast As Range, rFind As Range, sAddress
  Set rLast = Cells.Find _
      (what:="*", after:=Range("A1"), _
       LookIn:=xlValues, searchdirection:=xlPrevious)
  Application.ScreenUpdating = False
  With Range(Cells(1, 5), rLast)
    Set rFind = .Find _
      (what:=Range("C1"), after:=Range("E1"), _
       LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
    If Not rFind Is Nothing Then
      sAddress = rFind.Address
      Do
        rFind.Offset(, 1) = Range("D1")
        Set rFind = .FindNext(rFind)
      Loop Until rFind.Address = sAddress
    End If
  End With
End Sub

Gruß
Rudi


 

Beiträge aus den Excel-Beispielen zum Thema "Wenn Zelle = C1, dann andere Zelle = D1"