Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Sverweise per Makro in verschiedene Zellen einfügen

Forumthread: Sverweise per Makro in verschiedene Zellen einfügen

Sverweise per Makro in verschiedene Zellen einfügen
04.07.2025 18:45:06
Frauke99
Hallo zusammen,

ich habe eine recht lange Tabelle zum Thema Schulungsmanagement. Diese Tabelle hat ca. 50 Spalten.

Um das ganze etwas übersichtlicher zu gestalten, habe ich zu dieser Tabelle ein Formular erstellt, in dem die Felder übersichtlicher angeordnet sind.

Anhand einer eindeutigen Seminarnummer und mit Hilfe des S-Verweises befüllt sich das Formular.

Nun kommt es vor, dass Kollegen, die Formeln in den Zellen überschreiben und ich muss dann jedes Mal den Sverweis wieder eingeben. Dies würde ich gerne mit Hilfe eines Makros tun.

Der Versuch, das Makro einfach aufzuzeichnen ist leider gescheitert :-(

Ich weiß, dass ich die Zellen auch einfach sperren könnte, aber das Formular wird auch zur Neuanlage von Seminaren genutzt, indem die Daten eingegeben werden und per Makro (was mir mal vor Jahren ein Freund geschrieben hatte) in die Tabelle gespeichert.

Hat jemand einen Tipp für mich, wie das Makro aussehen muss? Wie gesagt, Makro aufzeichnen und in die Zelle "=SVERWEIS($C$3;Veranstaltung!A:AI;2;FALSCH)" (das ist nur der Sverweis für eine Zelle) zu schreiben, hat leider nicht funktioniert.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweise per Makro in verschiedene Zellen einfügen
04.07.2025 19:35:25
daniel
Hi
zeichne mal folgendes auf:
1. Markiere alle Zellen, die die gleiche SVerweisformel erhalten sollen (per copy-paste übertragbar
2. gib die Formel für die erste Zelle ein
3. schließe die Eingabe mit STRG+ENTER ab, das übernimmt die Formel in alle markierten Zellen.

wenn du die Formel so geschrieben hast, wie du hier zeigst, hast du die $ für absolute Zellbezüge falsch gesetzt.
in der Regel setzt man den Bezug auf die Liste absolut (weil die sich ja nicht ändert, wenn man die Formel in eine andere Zeile kopiert)
und lässt den Bezug auf den Suchwert (die Seminarnummer) relativ

=SVERWEIS(C3;Veranstaltung!$A:$AI;2;FALSCH)

um dir exakt zu sagen, was du programmieren musst, sind deine Angaben noch zu allgemein.

Gruß Daniel

Anzeige
Das ist durchaus...
07.07.2025 13:06:05
Case
Moin, :-)

... möglich. Könnte man komplett in VBA realisieren. Brauchst du noch ein Beispiel? ;-)

Servus
Case
AW: Sverweise per Makro in verschiedene Zellen einfügen
07.07.2025 13:52:43
Piet
Hallo

ich habe mal ein Makro geschrieben, es funktioniert auch, wenn die Bedingungen stimmen!
Der Text im Formular Spalte B+E muss mit der Überschrift in ListeVeranstaltungen exakt gleich sein!
Da musst du ggf. einiges von Hand korrigieren, z.B. bei Datum Start enthält der Text ein CR Zeichen.
Bei Präsentation steht in der Liste "Präsentation fertig". Wenn alle Texte übereinstimmen klappt es!

mfg Piet

Option Explicit

Dim AC As Range, lz1 As Long
Dim AJ As Range, LSp As Long


'Makro zum SVerweis ausfüllen

Sub SVerweis_Formel_ausfüllen()
Dim LV As Worksheet, c As Long, Txt As String
Set LV = Worksheets("ListeVeranstaltungen")
With Worksheets("Formular (2)")
lz1 = .Cells(200, 3).End(xlUp).Row
LSp = LV.Range("A1").End(xlToRight).Column
'Formular Spalte C auswerten
For Each AC In .Range("C7:C" & lz1)
For Each AJ In LV.Range("A1").Resize(1, LSp)
'Formular Text in Überschrift suchen
If AC.Offset(0, -1) = AJ.Value Then
c = AJ.Column
AC.FormulaLocal = "=SVERWEIS($C$3;ListeVeranstaltungen!A:AI;" & c & ";FALSCH)"
End If
Next AJ
Next AC

'Formular Spalte F auswerten
For Each AC In .Range("F7:F" & lz1)
For Each AJ In LV.Range("A1").Resize(1, LSp)
'Formular Text in Überschrift suchen
If AC.Offset(0, -1) = AJ.Value Then
c = AJ.Column
AC.FormulaLocal = "=SVERWEIS($C$3;ListeVeranstaltungen!A:AI;" & c & ";FALSCH)"
End If
Next AJ
Next AC
End With
End Sub
Anzeige
AW: Sverweise per Makro in verschiedene Zellen einfügen
04.07.2025 20:24:54
Frauke99
Hallo Daniel,

vielen Dank! Damit komme ich leider nicht weiter.

Ich habe mal eine Beispieldatei hochgeladen.

Wenn ich ehrlich bin, habe ich zwei Wünsche:

Ich würde gerne, wenn im Formular über die Seminarnummer eine Schulung ausgewählt wurde und die Daten geändert wurden, diese Daten wieder in die Liste zurückschreiben. Aktuell habe ich nur das Makro, das die Daten als neuen Eintrag in die Liste übernimmt, aber keinen bestehenden Eintrag überschreibt. Damit kann ich aber erstmal leben.

Mein zweites Problem (und darum ging es in meinem Beitrag): Wenn im Formular Daten eingetragen wurden oder überschrieben wurden, kurz gesagt: wenn die Formeln weg sind, dann hätte ich halt gerne per Knopfdruck die bestehenden Formeln (Sverweise) wieder drin. Und das gelingt mir einfach nicht :-(
Anzeige
AW: Sverweise per Makro in verschiedene Zellen einfügen
04.07.2025 20:33:32
daniel
hochladen allein reicht nicht.
du musst den Link auch kopieren und in deinen Beitrag einfügen, möglichst in eine eigene Zeile.
das steht da aber beschrieben (und wir wissen jetzt, wie gut du darin bist, geschriebene Anweisungen umzusetzen, eine Fähigkeit, die notwendig ist, wenn man sich über ein schriftliches Medium wie ein Forum helfen lassen will)
Gruß Daniel
Anzeige
AW: Sverweise per Makro in verschiedene Zellen einfügen
05.07.2025 00:52:54
Frauke99
Hallo Daniel,

herzlichen Dank! Sorry, dass ich einen Fehler gemacht habe! Dennoch bin ich durchaus dazu in der Lage, schriftliche Anweisungen umzusetzen. Allerdings bin ich fälschlicherweise davon ausgegangen, dass, wenn ich einen Beitrag poste, und darunter ein Link ist "Beispieldatei hochladen", dieser auch zu dem Beitrag hochgeladen und veröffentlicht wird. Ich muss gestehen, hier habe ich in der Tat keine "Anleitung" erwartet oder für erforderlich gehalten und somit auch nicht gelesen. Ich versuche es gerne noch einmal und würde mich freuen - solltest Du trotz meines Fehlverhaltens noch geneigt sein, mir zu helfen - wenn Du helfen könntest, mein Excel-Problem zu lösen.

https://www.herber.de/bbs/user/178001.xlsm
Anzeige
AW: Sverweise per Makro in verschiedene Zellen einfügen
05.07.2025 11:57:34
Daniel
Hi

Ich würde hier so vorgehen:

Füge vor vor der Spalte, in der jetzt die Kursdaten stehen, noch eine Spalte ein.
In diese Spalte kommen die SVerweise.
Die andere Spalte bleibt leer
Ziehe die Spalte mit den SVerweisen so schmal wie möglich, ohne sie ganz auszublenden.

Wenn die rechte Nachbarzelle leer ist, werden die SVerweiswerte in diese hineingeschrieben und sind sichtbar
Wenn du die rechte Nachbarzelle füllst, siesst du nur diesen Wert.

Das mit dem Anzeigen in der rechten Nachbarzelle geht nur mit Texten.
Liest der SVerweis Zahlen oder ein Datum, muss dieses in ruhen Text geändert werden
=Text(SVerweis(...);"TT.MM.JJJJ")

Bei berechneten Feldern, die diese Werte verwenden, musst du dann immer Prüfen, ob ein Manueller wert vorfanden ist:
=Wenn(D10="";C10;D10)


Wenn du das so machst, kannst du die Felder mit manuellen Eingaben einfach leeren um wieder die Werte aus der Datenbank zu sehen.




Solltest du bei der Makrovariante bleiben wollen, wäre es gut wenn in jeder Zelle der selbe SVerweis kommt.

Hierzu solltest du eine Spalte einfügen und in diese Spalte kommt dann die Spaltennummer, die der SVerweis im 3. Parameter verwenden soll und diese Formel referenzierst du in der Formel. Dann sollte das mit dem wieder Eintragen der Formel so funktionieren, wie von mir beschrieben


Oder du berechnest in E3 die Zeilennummer für die Liste (ist ja für alle gleich)
=Vergleich(C3; ListeVeranstaltungen!A:A;0)

Und holst die Werte dann so (Formel für C7)
=Index(ListeVeranstaltungen!$A:$AI;$E$3; Vergleich(B7; ListeVeranstaltungen!$1:$1;0))
Auch hier ist die Formel für alle Zellen gleich und du kannst sie wie von mir beschrieben für alle Zellen per Makro einfügen.

Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige