Kopieren aus anderer Tabelle

josef24

Erfahrenes Mitglied
Guten Tag. Ich versuche aus der Tabelle PLZ die Plz aus Spalte "A" in die Tabelle "ArbDat" Spalte "G" einfügen zu lassen, wenn der jeweilige Ort in PLZ Spalte "C" mit dem Ort in Tabelle ArbDat Spalte "H" identisch ist. Meine bisherige Formel lautet:

Code:
=WENN(H2<>"";INDEX(PLZ!$A:$A;VERGLEICH(H2;PLZ!$C:$C;0));"")
. Da mir der Code aber öfters durch andere beschädigt/ gelöscht in Unkenntnis wird, hätte ich das gerne mit einem VBA Code erledigt. (Das findet nicht jeder).

Nun mein Versuch, wofür ich mal Unterstützung bräuchte (Anhang). Er löscht mir lediglich die Spalte "G", fügt aber nichts Neues ein. (Modul3)

Code:
Option Explicit
Sub PLZ()
Dim g As Long  ' wozu brauchst du die Variable h?
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("ArbTab")
With wks.Cells(2, 7).Resize(wks.Cells(Rows.Count, 8).End(xlUp).Row - 1)
.FormulaR1C1 = "=iferror(vlookup(rc[3],PLZ!r1c1:r8c2,2,0),"""")"
.Value = .Value
End With
End Sub

Danke und Gruß Josef
 

Anhänge

  • TEST NEU Verkürzte Ausgabe.zip
    826,7 KB · Aufrufe: 2
Errrrrr... wieso aktivierst du nicht einfach einen Blatt-Schutz für die genannte Spalte?
Du kannst in einem Blatt bestimmte Zellen schützen, der Rest bleibt aber offen
 
Danke, an die Möglichkeit hatte ich auch gedacht. Weis aber nicht, ob ich Probleme bekomme, wenn ich z. B. Tabelleninhalte kopieren oder aktualisieren muss. Wird dann nicht nach dem entsprechenden Passwort gefragt, was dann wiederum kontraproduktiv wäre. Die Anwendung der Codes in VBA ist meinen Kollegen nicht bekannt, daher auch kein Risiko.
 
Mal von dem her abgesehen, dass du den VBA-Code per Passwort unabhängig von der Arbeitsmappe schützen kannst.
Muss ich mir mal ansehen. hab momentan aber kaum Zeit

EDIT: Wobei das Passwort eines Mappen-, Blatt- oder VBA-Schutzes auch nicht mehr als 2 Minuten dauert, bis es draussen ist......
 
Danke bis dahin.
Meine Idee ist, wenn man das machen kann, weitere Spalten mit einem solchen Code arbeiten zu lassen.
Gruß Josef
 
Anbei.
Ich habe deine Formel als WorksheetFunction nachgebildet.
Du musst jetzt nur noch die Ranges anpassen ("G2" und "H2" - Schleife?)
 

Anhänge

  • TEST NEU Zvoni.zip
    780,6 KB · Aufrufe: 1
Vielen Dank für deine Bemühungen, wenn du mich mit dem Anpassen noch unterstützen könntest, wäre ich dir sehr dankbar. Bin hier absoluter Laie und hoffe hier auf Unterstützung. Danke und Gruß, Josef
 
Anbei.
Ist zumindest was ich dir auf die schnelle bieten kann.
Anstatt das Monster an Formel oben aus dem ersten Post gibst du einfach nur ein

=PLZ(ZEILE()) in die Zelle ein
Wichtig: Die leere Klammer nach "ZEILE".
Also
"Ist Gleich"
"PLZ"
"Klammer auf"
"ZEILE"
"Klammer auf"
"Klammer zu"
"Klammer zu"

EDIT: In TEST NEU Zvoni 2 habe ich die Formel jetzt auch um die Spalte erweitert.
In der ersten Version versagt die Formel, sofern jemand links von der PLZ-Spalte eine Spalte hinzufügt oder löscht.
Der Aufruf in der zweiten Version ist jetzt
"=PLZ(ZEILE();SPALTE())"
(Wieder auf die leeren Klammern achten)
 

Anhänge

  • TEST NEU Zvoni.zip
    781,7 KB · Aufrufe: 1
  • TEST NEU Zvoni 2.zip
    784,3 KB · Aufrufe: 2
Zuletzt bearbeitet:
Danke, wenn ich das jetzt richtig verstehe brauche ich den VBA Code und den Code in der entsprechenden Zeile/Spalte? Sorry, darin sehe ich jetzt nicht wirklich eine Verbesserung. Es sei mir gestattet nochmal meine Frage zu stellen: Geht es nicht ausschließlich mit einem VB Code zu generieren? Ich bitte dies ausdrücklich nicht falsch zu verstehen. Danke und Gruß Josef
 
Das geht schon, nur brauchst du dann dennoch einen externen "Schalter", der den Code dann auch tatsächlich anstösst, Beispiel eine Schaltfläche.
Den Code alleine vom Worksheet_Change/Selection_Change-Ereignis(e) abhängig zu machen, halte ich nicht wirklich für eine gute Idee. Da braucht dann irgendjemand nur die Spalten umzusortieren, eine zu löschen/hinzuzufügen, und schon zerlegts das ganze
 

Neue Beiträge

Zurück