Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Cells.Find - Variable funktioniert nicht





Frage

Hallo.. beschäftige mich erst seit kurzem mit Excel Makros und glaube die Frage ist ziemlich amateurhaft aber macht ja nix ;) folgendes will ich tun: Bezeichnung die in Datei 1 stehen in Datei 2 suchen. Danach die Spalte mit den Werten unter der Bezeichnung in Datei 2 stehen kopieren. Die kopierten Werte in Datei 1 unter der Bezeichnung einfügen. Das mit 9 verschiedenen Bezeichnungen .. deshalb wollte ich das mit einer Schleife machen. Einzeln funktionierts .. aber in der schleife nicht. Da ich das ganze für verschiedene Dateien gleichermaßen funktioniern soll benutz ich die Find.Cell funktion. Hier ein Code-Ausschnitt: Dim i As Byte ' Festsetzen der bezeichnungen Set A1 = Range("A1") Set A2 = Range("B1") Set A3 = Range("C1") Set A4 = Range("D1") Set A5 = Range("E1") Set A6 = Range("F1") Set A7 = Range("G1") Set A8 = Range("H1") Set A9 = Range("I1") For i = 1 To 9 'suchen der Bezeichnung in Datendatei Workbooks.Open Filename:="C:\Test\Unit_13\Daten\2007-11-28_103121_ludwin_ludwig.xls" Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate 'selektieren und kopieren der Werte ActiveCell.Offset(1, 0).Range("A3").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy 'suchen der Bezeichnung in Auswertungsdatei Windows("Mappe2.xls").Activate Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate 'einfügen der Werte Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste Selection.End(xlDown).Select Next i Das Problem muss beim Cells.Find Befehl liegen. Denke der Wert A & i stimmt nich so ganz. Schonmal vielen dank Gruß Julian

Antwort 1 von derlistigelurch

Wär nett wenn sich jemand erbarmen würde .. ;/

Antwort 2 von Saarbauer

hallo,

leider habe ich mit der kombination noch nicht gearbeitet

Zitat:
Cells.Find(What:=A & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate


aber könnte es sein, dass es so sein müsste

Cells.Find(What:= "A" & i, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate



Gruß

Helmut

Antwort 3 von achim_13086

Guten Tag Julian,

versuche einmal in der Formel anstelle von " What:=A & i " folgende Änderung " What:=("A & i") ".

In deiner Scheibweise ist " A " eine Variable und " i " sowieso.
Nimm für A = 100 und für i = 50, dann entsteht als Ergebnis 10050.

Ich hoffe, mein Denkanstoß bringt Dich auf die richtige Spur.

Gruß
Joachim

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: