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

SVERWEIS VBA

SVERWEIS VBA
02.06.2021 12:58:23
Heike
Hallo
würdet ihr mir bitte bei folgendem Problem helfen?
Per VBA (SVERWEIS) möchte ich eine Spalte füllen. In Excel mit SVERWEIS ja kein Problem, aber die Zellen sollen auch manuell überschrieben werden können. Eine Beschreibung ist in der beigefügten Tabelle.
Ich habe mir natürlich über die Recherche schon unzählige Bespiele angeschaut aber diese sind soooo kompliziert.
Soweit ich aber informiert bin, kann das Einlesen nur über ein Button erfolgen (ist aber kein Problem).
https://www.herber.de/bbs/user/146474.xlsm
Freue mich sehr über eure Unterstützung.
Danke
LG
Heike

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVERWEIS VBA
02.06.2021 13:32:58
Pierre
Hallo Heike,
ich würde das nicht über das (z. B.) Worksheet_Change Ereignis machen, sonst werden dir deine manuellen Einträge ständig wieder durch das Makro überschrieben.
Der Weg über einen Buttonklick ist gar nicht so verkehrt in dem Fall, denn dann läuft das Einfügen wirklich nur dann, wenn man bewusst (naja, oder auch unbewusst) auf den Button klickt.
Als Ansatz:

Sub FormelInZelle()
Range("F4:F20").Formula = "DEINE FORMEL"     'englische Schreibweise, bei deutsch: FormulaLocal!
End Sub
Das wäre die einfachste Codevariante.
Gruß Pierre
Anzeige
AW: SVERWEIS VBA
02.06.2021 13:44:54
Heike
Hallo Pierre,
danke für deine Antwort. Du hast natürlich Recht, beim Button-Klick sollten die alten Daten nicht überschrieben werden. Lediglich, wenn Zelle leer ist (Zellen der Spalte F).
Ich hatte mit dem Recorder aufgezeichnet, auch dann das Einfügen als Wert, aber ich möchte ja den SVERWEIS nicht 1:1 als VBA.
Das neue Makro soll prüfen, ob in E etwas steht und F leer ist, dann Übertragen.
Wenn F nicht leer, nichts machen.
Sorry, dass ich das nicht so eindeutig geschrieben hatte.
VG
Heike
AW: SVERWEIS VBA
02.06.2021 13:49:32
Daniel
Hi
mach zwei Spalten.
die erste ohne Formeln, da kannst du deinen manuellen Text reinschreiben.
in der zweiten Spalte dann die Formel nach diesem Prinzip: =Wenn(Manuell = ""; SVerweis(...);Manuell)
die zweite Spalte ist dann ein offizielles Ergebnis.
wenn die erste Spalte Leer ist, wird der SVerweis angewendet, wenn nicht der Wert aus der ersten Spalte.
Gruß Daniel
Anzeige
AW: SVERWEIS VBA
02.06.2021 14:02:12
Heike
Hallo Daniel,
auch dir Danke für deine Antwort/Idee. Leider ist eine zusätzliche Spalte keine Option. Dafür ist meine Originaltebelle zu groß und die VBA-Abfrage würde ich erweitern, um weitere Spalten zu füllen.
VG
Heike
AW: SVERWEIS VBA
02.06.2021 14:17:41
Daniel
"Dafür ist meine Originaltebelle zu groß" = Bullshit.
Du hast über 16.000 Spalten zur Verfügung.
lasse dir bitte ein besseres Gegenargument einfallen, wenn du diese Lösung nicht magst.
alternativ wenns VBA sein soll, kannst du natürlich auch in der Text-Spalte gezielt auf die Leerzellen zugreifen und dort die SVerweis-Formeln eintragen und die bereits befüllten Zellen unverändert lassen.
das geht im Prinzip so für deine Beispieltabelle:

with Cells(3, 3).Currentregion
with .Columns(6)
if Worksheetfunction.Countblank(.Cellls) > 0 then
.SpecialCells(xlcelltypeblanks).FormulaR1C1 = "=VLookUp(RC5,Liste!C1:C2;2;0)"
.Formula = .value
end if
end with
end with
Gruß Daniel
Anzeige
AW: SVERWEIS VBA
02.06.2021 14:37:00
Heike
Hallo Daniel,
ich erhalte einen Laufzeitfehler 438
If WorksheetFunction.CountBlank(.Cellls) > 0 Then"
VG
Heike
AW: SVERWEIS VBA
02.06.2021 15:45:39
Daniel
warum schreibst du auch Cells mit drei kleinen "L"?
Gruß Daniel
AW: SVERWEIS VBA
02.06.2021 15:59:46
Heike
Hallo Daniel,
hatte lediglich deinen Code kopiert und nicht nach der korrekten Schreibweise geschaut!
Nun erhalte ich Laufzeitfehler 1004
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=VLookUp(RC5,Liste!C1:C2;2;0)"
Noch eine Idee?
VG
Heike
AW: SVERWEIS VBA
02.06.2021 16:06:49
Daniel
im englischen ist das Komma der Parametertrenner und nicht das Semikolon wie im Deutschen.
wenn ich den Code hier mal so schnell ins Forum tippe, gibts halt keine Rechtschreibkorrektur wie bei dir in deinem Excel.
den benötigten Formeltext kannst du dir auslesen, wenn du die formel normal in eine Zelle schreibst und dir ihn dann im Direktfenster mit ?Selection.FormulaR1C1 oder nochbesser mit ?Replace(Selection.FormulaR1C1, """", """""") im Direktfenster anzeigen lässt (Anführungszeichen, die zur Formel gehören, müssen verdoppelt werden, daran unterscheidet sie der interpreter dann von den Anführungszeichen, die die Formel im Code begrenzen.)
Gruß Daniel
Anzeige
AW: SVERWEIS VBA
02.06.2021 16:03:04
Heike
Hallo Daniel,
ich hatte lediglich deinen Code kopiert und nicht nach der korrekten Schreibweise geschaut.
Nun erhalte ich: Laufzeitfehler 1004
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=VLookUp(RC5,Liste!C1:C2;2;0)"
Noch eine Idee?
VG
Heike
AW: SVERWEIS VBA
02.06.2021 16:36:52
Heike
Hallo,
ich hatte zwar jetzt die Zellbezüge korrigiert aber für jede Zelle den Button zu klicken, macht keinen Sinn. Zudem wird der Eintrag in der Zelle vorgenommen, in der der Cursor steht, wenn ich auf den Button klicke.
Ich bitte um weitere Unterstützung.
Vielen Dank dafür.
Heike
AW: SVERWEIS VBA
02.06.2021 17:03:25
Daniel
musst du ja auch nicht.
wenn du eine korrekte Tabelle ohne durchgehende Leerzeilen und -Spalten hast, sollte mein Code alle Leerzellen in der Spalte mit der SVerweis-Formel füllen.
was mein Code machen sollte, kannst du auch von Hand nachvollziehen:
1. ganze Spalte markieren
2. Selektion auf die leeren Zellen einschränken (F5 - Inhalte - Leere Zellen)
3. SVerweis-Formel für die aktive Zelle eingeben und mit STRG+ENTER abschließen, damtit die Formel in alle selektierten Zellen übernommen wird.
4. Bereich kopieren und als Wert einfügen
Teil 4 kannst du ja löschen, wenn die SVerweisformeln in den Zellen stehen bleiben sollen.
außerdem sollte der Code die 6. Spalte füllen, egal welche Zellen du markiert hast.
Gruß Daniel
Anzeige
Jaaaa, passt
02.06.2021 17:20:02
Heike
Hallo Daniel,
ja, jetzt passt es. Vielen lieben Dank für deine Geduld.
VG
Heike
Jaaaa, passt
02.06.2021 17:23:22
Heike
Hallo Daniel,
ja, jetzt passt es. Vielen lieben Dank für deine Geduld.
VG
Heike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige