Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren bei Übereinstimmung beider Werte | Herbers Excel-Forum


Betrifft: Kopieren bei Übereinstimmung beider Werte von: chandler
Geschrieben am: 04.08.2012 11:52:51

Hallo zusammen,

ich suche verzweifelt nach eine Lösung wie man in einer Schleife alle Tabellen, außer der ersten Tabelle1 und ausgeblendeter Tabellen, durchläuft und vergleicht den Wert aus Zelle C2 aller Tabellen mit dem Wert in der ersten Tabelle1 Spalte B2, nach unten variabel, und bei einer Übereinstimmung der beiden Werte soll der entsprechende Wert aus Tabelle1 der Spalte A in die jeweilige Tabelle in Zelle C1 kopiert werden.

Hoffe es ist verständlich dargestellt.

Hat jemand Rat und kann mir helfen? Vielen Dank.

chandler

  

Betrifft: AW: Kopieren bei Übereinstimmung beider Werte von: Hajo_Zi
Geschrieben am: 04.08.2012 12:07:10

prüfe If WsTabelle.visible and Wstabell.Range("C2")=Worksheets(1).range("b2") then

GrußformelHomepage


  

Betrifft: AW: Kopieren bei Übereinstimmung beider Werte von: chandler
Geschrieben am: 04.08.2012 13:51:26

Hallo Hajo,

habe doch was übersehen in meiner Beschreibung des Problems: In der Tabelle1 in Spalte B d.h. ab der B2 nach unten variabel, sind Werte die verglichen sollen mit dem Wert in Zelle C1 der restlichen Tabellen und bei Übereinstimmung den Wert aus C2 kopieren in die Tabelle1 in Spalte A.


Vielen Dank für die Hilfe.

chandler


  

Betrifft: AW: Kopieren bei Übereinstimmung beider Werte von: Hajo_Zi
Geschrieben am: 04.08.2012 16:04:55

Ich baue keine Datei nach, die Zeit hat schon jemand investiert. Ein Link zur Datei wäre nicht schlecht.

Gruß Hajo


  

Betrifft: Rückfrage von: Erich G.
Geschrieben am: 04.08.2012 13:14:32

Hi Vorname,
was meinst du mit "nach unten variabel"?
Bedeutet das, dass nach dem Vergleich von TabelleX!C2 mit Tabelle1!B2 und der evtl. Kopie von Tabelle1!B2 auf TabelleX!C1
dann auch die weiteren Zeilen bearbeitet werden sollen, also z. B.:

Wenn TabelleX!C3 = Tabelle1!B3, dann kopiere Tabelle1!B3 auf TabelleX!C1
Wenn TabelleX!C4 = Tabelle1!B4, dann kopiere Tabelle1!B4 auf TabelleX!C1
usw.
Dabei werden immer wieder Werte auf die eine Zelle TabelleX!C1 kopiert. Ist das so gewollt/sinnvoll?

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: Codevorschlag von: Erich G.
Geschrieben am: 04.08.2012 16:48:38

Hi Vorname,
die Angaben in deiner Antwort an Hajo widersprechen in einigen Punkten dem, was du eingangs geschrieben hast,
insbesondere in der Frage, was von wo nach wo kopiert werden soll.

Auf meine Rückfrage hast du nicht geantwortet. Warum?

Hier gleich noch eine Frage:
Was soll passieren, wenn ein Wert aus Tabelle1:B:B in mehreren Blättern in C1 gefunden wird?
Welches C2 gilt dann, welches soll in Tabelle1!A übernommen werden?

Hier mein Code zum Ausprobieren:

Option Explicit

Sub chandler()
   Dim wkH As Worksheet, wks As Worksheet, lngW As Long, arW, varC, nn As Long

   Set wkH = Sheets("Tabelle1")
   With wkH
      lngW = .Cells(.Rows.Count, 2).End(xlUp).Row
      arW = .Cells(1, 2).Resize(lngW).Value                    ' Werte in wkH.A:A
   End With
   For Each wks In Worksheets
      With wks
         If .Name <> wkH.Name And .Visible = xlSheetVisible Then
            varC = .Cells(1, 3)                                ' Wert in wks.C1
            For nn = 2 To lngW                      ' prüfe Wert, evtl. übertrage
               If varC = arW(nn, 1) Then wkH.Cells(nn, 1) = .Cells(2, 3)
            Next nn
         End If
      End With
   Next wks
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Neuer Anlauf von: chandler
Geschrieben am: 04.08.2012 23:51:09

Hallo Erich,

bin leider erst jetzt zurück vom Dienst und konnte nicht auf die Anfrage sofort reagieren, sorry.

Werde mich sofort an die Arbeit machen und den Code testen.

Erste Frage: Das "nach unten variabel" bedeutet, dass die Anzahl der Einträge in Spalte B unterschiedlich sein kann.

Zweiten Frage: Der Wert aus Zelle C2 in den TabellenX soll verglichen, vielleicht besser gesagt, gefunden werden in der Spalte B der Tabelle1.


So noch einmal, das Makro durchläuft eine Tabelle nach der anderen und vergleich den Wert C2 mit den Werten in Tabelle1 Spalte B. Wenn der Wert gefunden oder übereinstimmt, dann soll der Wert aus der Zelle C1 in Tabelle1 in die Spalte A (Zelle nebenstehend) zur Spalte B.

Achtung es soll nur der Wert in Zelle C2 mit den Werten in Tabelle1 Spalte B verglichen werden, kann nur einmal vorkommen sowohl in der Spalte B als auch in der Zelle C2 der TabellenX.

Vielen Dank im Voraus.

chandler


  

Betrifft: AW: Funktioniert einwandfrei. Danke von: chandler
Geschrieben am: 05.08.2012 00:17:47

Hallo Erich,

habe bereits den Code getestet, hat auf Anhieb funktioniert!

In der Tat, ich habe mich vertan mit den Zellbezügen bei der Antwort an Hajo.

Vielen, vielen Dank.

Grüße chandler


Beiträge aus den Excel-Beispielen zum Thema "Kopieren bei Übereinstimmung beider Werte "