Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro mit dynamischen Feldbeziehungen
#1
Hallo zusammen,

ich habe eine Kontaktliste, die verschiedene Unterteilungen hat, im Bsp 2 Stück.
Es soll jeweils möglich sein, in die Zeilen (Maskenzeile) über den Tabellen neue Kontakte einzugeben und dann mit einem Makro zur Tabelle hinzuzufügen.
Ablauf:
Zelle in der Tabelle einfügen --> Maskenzeile markieren --> Strg+x --> in die neu eingefügten Zellen kopieren --> fertig

Das Problem das ich habe ist, wenn ich oben einen Eintrag hinzufüge, wird der Bezug der Maskenzeile der unteren Tabelle nicht geändert und ein neuer Eintrag in die untere Tabelle ist nicht möglich.
Wie schaffe ich es, dass die Maskenzeilen in den Makros "flexibel" sind, d.h. die Bezüge im Makro sich ändern je nachdem ob Zeilen gelöscht oder hinzugefügt werden.

Viele Grüße
-DieMelone


Angehängte Dateien
.xlsm   bsp_mail_adressen.xlsm (Größe: 17,89 KB / Downloads: 4)
Antworten Top
#2
Hallöchen,

mal zwei Teile:

1. Wie füge ich ein eine "intelligente" Tabelle oder Liste eine Zeile ein?
Wenn Du das etwas besser machst, nimmst Du auch die entsprechenden Möglichkeiten - schaue mal ins Kontextmenü der Tabelle.
Ich habe da mal einen Code aufgezeichnet und die Leer- / Kommentarzeilen schon entfernt:
Code:
Sub Makro1()
' Makro1 Makro
    Range("A14").Select
    Selection.ListObject.ListRows.Add (1)
    Range("L15").Select
End Sub
Wichtig ist hier die Zeile mit den Listrows. Wir haben hier keine "normale" Zeile (Row).

Da ich nicht selectieren will, baue ich den Code etwas um:
Code:
ActiveSheet.ListObjects("Tabelle1").ListRows.Add 1

Leider nimmt Excel hier sie Formatierung der Headerzeile mit. Um die wegzubekommen, brauch ich noch etwas mehr Code. Der ist hier auch wieder nur aufgezeichnet und dann zu der einen Zeile hinzugefügt. Da beim Aufzeichnen wieder das leidige Select / Selection drin stand, habe ich selbiges noch durch diesne Part ersetzt: ActiveSheet.ListObjects("Tabelle1").ListRows(1).Range

Code:
Sub Makro1()
    ActiveSheet.ListObjects("Tabelle1").ListRows.Add 1
    With ActiveSheet.ListObjects("Tabelle1").ListRows(1).Range.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

Jetzt könnte es noch sein, dass die Schrift nicht passt. Also, aufzeichnen, anpassen und bei Bedarf nachfragen Smile
Tabelle2 kannst Du dann entsprechend verwenden, musst ja nur die 1 und die 2 austauschen.

2. Markiere Deine Eingabezeile in A:L und vergib Namen. Dann greifst Du nicht mehr z.B. auf A28 zu, sondern auf die erste Zelle z.B. im Bereich Range("Eingabe2").Cells(1,1)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste