Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1124to1128
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
Anwendung FormulaLocal
Stefan
Hallo zusammen,
in meinem Beitrag vom 30.12.09 zum Thema vlookup hatte mir Daniel den Vorschlag gemacht, vorhandene excel-Formeln mittels FormulaLocal in den VBA-Code einzusetzen. Er hatte folgendes Beispiel angeführt:
Sub Test()
With Range(Cells(1, 2), Cells(1,1).End(xldown).Offset(0,1))
.FormulaLocal = "=WENN(ISTNV(SVERWEIS(A1;Tabelle1'!D:E;2;FALSCH))=WAHR;SVERWEIS(A1;'Tabelle2'!A: B;2;FALSCH);SVERWEIS(A1;'Tabelle1'!A:B;2;FALSCH))"
.Formula = .Value
End With
End Sub

Jetzt verstehe ich nicht, was am Ende der ersten Zeile das .Offset(0,1) bedeutet. Könnte mir das bitte jemand kurz erläutern?
In einem Anderen Makro habe ich mal das .FormulaLocal ohne .Offset getestet und es scheint zu funktionieren:

Private Sub CommandButton2_Click()
Dim LastRow As Integer
LastRow = Range("a1").End(xlDown).Row
With Range(Cells(3, 3), Cells(LastRow, 3))
.FormulaLocal = "=WENN(ISTNV(VERGLEICH(A3;'Tabelle Daten'!A:A;0))=WAHR;0;1)"
.Formula = .Value
End With
End Sub

Könnte bitte mal jemand diesen Code anschauen und mir sagen, ob ich noch einen Gedankenfehler habe?
Danke und Gruß
Stefan

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

Betreff
Benutzer
Anzeige
AW: Anwendung FormulaLocal
07.01.2010 12:29:32
Rudi
Hallo,
.Offset(0,1)=1 Spalte weiter rechts
Hast du keine Hilfe-Datei?
Code sieht OK aus. Teste es doch einfach.
Gruß
Rudi
AW: Anwendung FormulaLocal
07.01.2010 12:34:50
Stefan
Hallo Rudi,
danke für die Antwort.
Dass .Offset(x, x) ein Verschieben um eine bestimmte Zeilen, oder Spaltenanzahl bedeutet, ist mir klar.
Unklar ist mir aber, was es in diesem Makro bewirkt.
Gruß
Stefan
AW: Anwendung FormulaLocal
07.01.2010 13:29:03
Daniel
HI
der Code mit Offset benötigt keine Variable LastRow.
denk mal scharf nach, warum das so sein könnte.
Schau dir auch mal genau die einzelnen Spaltennummern an.
vielleicht kommst du dann selber drauf, was da genau passiert.
gruß, Daniel
Anzeige
AW: Anwendung FormulaLocal
07.01.2010 14:31:58
Stefan
Ich versuche mal, es zu beschreiben und teile hierzu die Elemente der betreffenden Zeile in mehrere Zeilen auf:
Range(Cells(1, 2),_______Benennt als erste Zelle des Bereichs die Zelle B1
Cells(1, 1).End(xldown)___Sucht die letzte Zelle der 1. Spalte
Offset(0, 1)____________Geht eine Spalte nach Rechts
Wenn in meinem Arbeitsblatt in den Zellen A1 bis A3 Werte stehen, geht der für die with-Anweisung definierte Range-Bereich in meinem Arbeitsblatt von Zelle B1 bis Zelle B3.
Der Grund für meine Nachfrage war, dass vorher mein Makro nicht funktionierte. Der Fehler war, dass ich den Offset um eine Spalte weiter setzten musste.
Jetzt habe ich das Makro umgeschrieben und erneut getestet. Es funktioniert jetzt auch mit Offset:
Private Sub CommandButton2_Click()
With Range(Cells(3, 3), Cells(1, 1).End(xlDown).Offset(0, 2))
.FormulaLocal = "=WENN(ISTNV(VERGLEICH(A3;'Lieferantenliste Status 0 bis 7'!A:A;0))=WAHR; _
0;1)"
.Formula = .Value
End With
End Sub
Bitte entschuldigt meine (für euch) naiven Fragen, und nochmal Danke für's Helfen. Ich habe mit VBA einfach erst angefangen und muss noch viel lernen.
Stefan
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige