Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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
Sverweis mit VBA
26.03.2018 10:52:25
Peter
Hallo zusammen,
ich möchte, dass wenn Spalte A eine Zahl enthält
es in der Spalte R ein SVerweis mit dem Wert der Spalte A und Bezug auf die Spalte A und B von Tabelle3 nehmen soll. Außerdem soll in Spalte S eine Formel eingefügt werden (diese funktioniert auch bereits).
lediglich der SVerweis funktioniert nicht. Kann mir jemand weiterhelfen?
Außerdem habe ich noch eine Frage:
Mein Makro schaut immer ob die Spalte A leer ist. Manchmal steht dort aber ein Wort. Und ich benötige die Formeln nur bei Zahlen kann ich es so einstellen, dass er nicht nur wenn es nicht leer ist die Formeln in Spalte R und S einfügt sondern wenn dort in A ein Wort statt einer Zahl steht auch keine Formeln einfügt?
Vielen Dank im Voraus!
Peter

Sub Verweise()
Dim LoLetzte As Long
Dim LoI As Long
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
For LoI = 12 To LoLetzte
If .Cells(LoI, 1)  "" Then
.Cells(LoI, 18).Formula = "=SVERWEIS(A" & LoI & ";Tabelle2!A:B;2;FALSCH)"
.Cells(LoI, 19).Formula = "=J" & LoI & "*R" & LoI & "/100"
End If
Next LoI
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis mit VBA
26.03.2018 11:12:12
Daniel
Hi
wenn du die Formel mit .Formula in die Zellen schreibst, musst du die englische Formelschreibweise mit englischen Funktionsnamen und dem Komma als Parametertrennzeichen verwenden.
wenn du die gleiche Schreibweise wie direkt in Excel verwenden willst (hier deutsch) musst du die Formel mit .FormulaLocal in die Zelle schreiben.
kleiner Tip noch: verwende in VBA möglichst die R1C1- bzw Z1S1-Addressierungsart.
dadurch kannst du relative Zellbezüge besser beschreiben und die Formel wird einfacher:

.Cells(LoI, 18).FormulaR1C1Local = "=SVERWEIS(ZS1;Tabelle2!S1:S2;2;FALSCH)"
.Cells(LoI, 19).FormulaR1C1Local = "=ZS10*ZS18/100"
wobei das Z hier für Zeile und das S für Spalte steht.
danach folgt die jeweilige Zeilen- oder Spaltennummer.
fehlt diese, so geht der Bezug auf die gleiche Zeile oder Spalte, in der auch die Formel steht.
Gruß Daniel
Anzeige
AW: Sverweis mit VBA
26.03.2018 11:17:27
Peter
Hallo Daniel,
Danke, das klappt super! :)
weißt du zufällig was ich eingeben muss, dass er es nur eingibt wenn dort eine Zahl steht also nicht leer ist und auch kein Wort steht?
AW: Sverweis mit VBA
26.03.2018 11:27:46
Daniel
Hi
ich würde das mit in die Formel packen:
=Wenn(IstZahl(A12);SVerweis(...);"")
das spart die Schleife und du kannst die Formel in alle Zellen gleichzeitig schreiben, was deutlich schneller geht.
Range(Cells(12, 18), Cells(LoLetzte, 18)).FormulaR1C1Local = "=Wenn(IstZahl(ZS1);SVerweis(...);"""")"
beachte, wenn du Anführungszeichen in der Formel verwendest, dass diese dann im VBA-Editor immer Doppelt angegeben werden müssen. Anhand dieser Dopplung erkennt der Editor, ob das Anführungszeichen zum Text gehört oder ob es den Teiltext begrenzt.
gruß Daniel
Anzeige
AW: Sverweis mit VBA
26.03.2018 12:58:43
Thomas
Super Danke! Das hat geklappt!

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige