Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

Alle Zelle in Spalte A außer A1 berücksichtigen

Alle Zelle in Spalte A außer A1 berücksichtigen
14.07.2014 21:21:20
Chris
Hallo VBAler
unten stehendes Makro sucht mir im Range("A2:A10") für jede Zelle den Wert in einem anderen Sheet und gibt dann einen Wert wieder, der in Blatt 1, 1 Zelle weiter rechts steht. Soweit prima. Ich benötige folgende Änderung:
Statt nur im Range A2:A10 zu suchen, soll Excel in Blatt 2 Spalte A alle Zellen berücksichtigen, außer die Erste.
Ich habe einfach mal A2:A65536 eingegeben, doch da brauch das Makro "Stunden"....
Wie löst man es so, dass es schneller läuft? Chris
Dim bereich As Range
Set bereich = Worksheets("Blatt2").Range("A2:A10")
For Each zelle In bereich
Set c = Sheets("Blatt1").Range("A1:A10").Find(zelle.Value, LookIn:=xlValues)
If Not c Is Nothing Then
zelle.Offset(, 1).Value = c.Offset(0, 1)
End If
Next
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was du da machst, ist der SVerweis
14.07.2014 21:37:03
Daniel
... den kannst du auch gleich direkt in die Zellen schreiben:
With Range("A2:A" &  Cells(Rows.count, 1).end(xlup)).Offset(0, 1)
.FormulaR1C1 = "=IFError(VLookUp(RC1,Blatt1!R1C1:R10C2,2,0),"""")"
.Formula = .Value
End With
oder auch mit deutschen Formeln, falls dir das lieber ist
With Range("A2:A" &  Cells(Rows.count, 1).end(xlup)).Offset(0, 1)
.FormulaLocal = "=WennFehler(SVerweis(A2;Blatt1!$A$1:$B$10;2;0);"""")"
.Formula = .Value
End With

Gruß Daniel

AW: Was du da machst, ist der SVerweis
15.07.2014 07:58:35
Chris
Hi,
vielen Dank - ist fast das was ich brauche. Ich habs mal angepasst
.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).FormulaLocal = "=SVerweis(A2;Import!$A$1:$A$100;2;0)"
Nun habe ich noch das Problem, dass der SVerweis ständig in Zelle A2 schaut, was zu falschen
Werten führt. Zelle A2 soll jedoch einen relativen Bezug haben....
also b2 = sverweis(A2....) B3= sverweis(A3 !!!!) B4 = sverweis(A4 !!!) usw.

Anzeige
AW: Was du da machst, ist der SVerweis
15.07.2014 08:04:55
Chris
Hi,
vielen Dank - ist fast das was ich brauche. Ich habs mal angepasst
.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).FormulaLocal = "=SVerweis(A2;Import!$A$1:$A$100;2;0)"
Nun habe ich noch das Problem, dass der SVerweis ständig in Zelle A2 schaut, was zu falschen
Werten führt. Zelle A2 soll jedoch einen relativen Bezug haben....
also b2 = sverweis(A2....) B3= sverweis(A3 !!!!) B4 = sverweis(A4 !!!) usw.

AW: Was du da machst, ist der SVerweis
15.07.2014 08:58:17
Daniel
Dann verwende die Erste von mir gezeigte Formelschreibweise (R1C1).
Gruß Daniel

AW: Alle Zelle in Spalte A außer A1 berücksichtigen
15.07.2014 08:49:56
Ralf
Hallo Chris,
kannst ja trotzdem nochmal folgendes probieren:
Set c = Sheets("Blatt1").Range("A1:A10").Find(zelle.Value, LookIn:=xlValues,LookAt:=xlWhole)
Normalerweise ist Range.Find richtig schnell, wenn du nicht gerade LookAt:=xlPart benutzt,
ich nutze es tausendfach..
Diese Einstellungen werden abgespeichert und bei der nächsten Suche, soweit nicht angegeben wieder verwendet.
Gruß
Ralf

Anzeige
AW: Alle Zelle in Spalte A außer A1 berücks.
15.07.2014 08:56:56
Chris
hallo Ralf,
habe folgende Änderung durchgeführt, die zu einmal zu einen Absturz von Excel führte, das Zweite mal musste ich den code mit ESC abbrechen, da es zu lange dauerte..
Set bereich = Worksheets("Blatt2").Range("A:A")
For Each zelle In bereich
Set c = Sheets("Blatt1").Range("A1:A10").Find(zelle.Value, LookIn:=xlValues)
Das Problem liegt darin, dass die ganze Spalte A nachgeschaut werden muss....
noch ne Idee?

AW: Alle Zelle in Spalte A außer A1 berücks.
15.07.2014 08:59:19
Chris
Korrektur:
ich habe zelle.Value, LookIn:=xlValues, LookAt:=xlWhole verwendet. rest wie gehabt.

AW: Alle Zelle in Spalte A außer A1 berücks.
15.07.2014 09:23:58
Ralf
die Zeilen sind doch sicher nicht alle belegt?
hast du 65T (xls) oder 1M (xlsm) Zeilen?
Denn lass doch erstmal die letzte beschriebene Zeile feststellen:
dim uRows as Long
uRows = Worksheets("Blatt2").usedrange.rows.count
Set bereich = Worksheets("Blatt2").Range("A1:A" & urows)

Gruß
Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige