Anzeige
Archiv - Navigation
1836to1840
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

Button erstellen zum Zeilen einf.

Button erstellen zum Zeilen einf.
02.07.2021 07:37:53
Smilestyle
Guten Morgen,
ich habe folgende Bitte , ich habe gerade erst mit VBA begonnen und erstelle mir im Moment eine Abwesenheitsübersicht. Ich möchte hier einen Button realisieren indem ich angeben kann ob ich eine Zeile Einfügen(hier mit Name in der ersten Spalte) oder Löschen Möchte. Außerdem sollte er mich fragen zwischen welche Zeile das sein soll und jetzt glaube ich das schwierigste. Er soll das ganze bitte für die nachfolgenden Tabellenblätter auch machen.
Bedeutet wenn ich in Tabellenblatt April was einfüge soll es auch in den Monaten darauf passieren und das auch beim löschen.
Mfg SmileStyles

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

Betreff
Datum
Anwender
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 08:15:44
Oberschlumpf
HI,
zeig mal bitte per Upload deine Beispiel-Datei. Denn, ohne, dass wir wissen, wie deine Datei aufgenaut ist, wissen wir doch auch nicht, wo genau der Button hin soll, und was genau mit Buttonklick passieren soll.
Ciao
Thorsten
AW: Button erstellen zum Zeilen einf.
02.07.2021 08:47:13
Pierre
Hi, möchtest du nur Hilfe, also Anregungen oder eine Komplettlösung?
Gruß Pierre
AW: Button erstellen zum Zeilen einf.
02.07.2021 08:55:59
Smilestyle
Also ich brauche keine Komplettlösung, aber ein Grundgerüst wäre nicht verkehrt sodass ich schon mal was habe. Dazu ein paar Anregungen wäre super
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 09:17:34
Pierre
Ich versuch es mal (bin aber schlecht im Erklären, nur als Warnung ;-) ):
Auf deinem Arbeitsblatt "Grundeinstellung" würde ich 2 Buttons einfügen (wie du es glaube auch vorhast), beide brauchen ein eigenes zugewiesenes Makro.
Beide Makros sind vom Grundsatz her gleich.
Erstmal dimensionierst du: 1. eine Zeile, unter der eingefügt werden soll, 2. die Tabellenblätter, 3. ein "Start"tabellenblatt.

Dim zeile As Long
Dim ws As Worksheet
Dim wsStart As Long
Du musst zum Einen sagen, unter welcher Zeile die Leerzeile eingefügt werden soll und zum Anderen, auf welchen Blättern das passieren soll.
Hierbei gehe ich davon aus, dass immer auf allen nachfolgenden Blättern eine Leerzeile eingefügt werden soll, richtig? Also, dass nicht z. B. von Januar-April und dann wieder von Juli-Dezember, sondern ab z. B. April durchgehend bis Dezember.
Für diese beiden Dinge benötigst du InputBoxen. Dafür hast du zu Beginn die Zeile und das Startblatt dimensioniert.

zeile = InputBox("Dein Text")
wsStart = InputBox("Dein Text?")
Nun musst du eine Schleife über die Blätter laufen lassen, da du die ersten X Blätter aber ausschließen willst, musst du VBA noch sagen, dass das Makro erst ab Blatt X laufen soll. Hierfür nimmst du am Einfachsten die Excel-Interne Bezeichnung, da diese durchnummeriert sind.
Bei meiner Variante musst du die Blattnummer (Januar wäre 2) eintragen, ab der die Zeile eingefügt werden soll.

For Each ws In Sheets
If ws.Index >= wsStart Then
With ws
Weiter sagst du, dass auf den von dir bestimmten Blättern jeweils eine Zeile eingefügt wird, unter der eingegebenen.

.Rows(zeile + 1).Insert
Das ist das Makro fürs Einfügen.
Das Makro zum Löschen ist genau gleich aufgebaut, nur dass dort ein Wort geändert werden muss.
Aber darauf kommst du sicher selbst ;-)
Das ist mal eine grundsätzliche Möglichkeit.
Das Makro abschließen schaffst du?
Gruß Pierre
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 09:22:58
Yal
Hallo Smile,
dann ein paar Anregungen: am besten lernt es sich mit dem Makro recorder.
im Menüband den Entwicklertools-Ribbon aktivieren,
dort Marko aufzeichen anklicken,
Aktionen durchführen: Zeile einfügen,
Makroaufzeichnung beenden,
Immer nur wenige Aktionen pro Aufzeichnung durchführen, um die Verbindung zwischen Aktion und Code besser zu verstehen.
Code anschauen und sich -trotz Anfangsschwierigkeit- sich richtig ausseinandersetzen, was da geschrieben ist. Nur der Anfang ist schwer. Aber je intensiver, desto steiler die Lernkurve.
Dann versuchen den Code nach eigener Vorstellung zu ändern und schauen, was es bewirkt.
Wenn's klemmt, gibt's ja Herbers Forum.
VG
Yal
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 09:14:40
Oberschlumpf
siehste, hab schon eine Frage - deswegen ist mir das Zeigen von Bsp-Dateien am liebsten!
Zitat
Ich möchte hier einen Button realisieren indem ich angeben kann ob ich eine Zeile Einfügen(hier mit Name in der ersten Spalte) oder Löschen Möchte
Frage
In jeder der Monatstabellen ist in der 1. Spalte kein Name, sondern die lfd Nr.
(Name kommt erst in Spalte C)
Was also meinst du mit "hier mit Name in der ersten Spalte" ?
Dann noch etwas.
Leider hast du vergessen, in jeder Monatstabelle einen Button an der Stelle hinzuzufügen, wo du ihn haben willst.
Da auch ich keine Lust dazu habe :-), 12 Button zu erstellen, könnte das Ganze auch so programmiert werden, dass bei Auswahl einer Zelle in Spalte A (lfd Nr, nicht Name!) eine Abfrage erscheint, wieviele Zeilen unterhalb der angeklickten Zelle in Spalte A hinzugefügt oder gelöscht werden sollen - natürlich würde sich das auf jede Monatstabelle auswirken.
Danke für deine Antworten.
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 09:26:53
Smilestyle
Die Buttons kann ich mir selbst erstellen. Das ist ja nicht das Problem. Ja der Name ist in Spalte C stimmt . Falschaussage meinerseits :D . habe mir einen Button erstellt und bräuchte jetzt die Abfrage über den Button in welcher Zeile das ganze geschehen soll und die lfd Nr. müsste sich dort anpassen.
Die Abteilung müsste man dann angeben können und den Namen.
Kann eine Datei hochladen wo es einen Button schon gibt wenn das hilft . =)
AW: Button erstellen zum Zeilen einf.
02.07.2021 09:55:43
hary
Moin
Als Ansatz auf die schnelle.
zum loeschen

Dim i As Long, Zeile As Long
Zeile = Application.InputBox("welche Zeile loeschen?", "Zeile loeschen", Type:=1)
For i = ActiveSheet.Index To Worksheets.Count 'von aktuellem Blatt bis letztes Blatt
Worksheets(i).Rows(Zeile).Delete
Next
zum einfuegen

Dim i As Long, Zeile As Long
Zeile = Application.InputBox("nach welcher Zeile einfuegen?", "Zeile einfuegen", Type:=1)
For i = ActiveSheet.Index To Worksheets.Count
Worksheets(i).Rows(Zeile).Insert xlDown
Next
gruss hary
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 10:33:47
Smilestyle
Danke schon mal für die schnelle Hilfe. Habe den Code soweit übernommen und auch verstanden =)
Klappt auch alles einwandfrei. Gibt es jetzt eine Möglichkeit beim Einfügen noch zu sagen das er mir die 2 Spalte einfügt mit einer Abteilung und ich den Namen in die 3 Spalte noch eintragen kann ?
AW: Button erstellen zum Zeilen einf.
02.07.2021 11:16:55
hary
Moin
Dann versuch es mal so.

Dim i As Long, Zeile As Long
Zeile = Application.InputBox("nach welcher Zeile einfuegen?", "Zeile einfuegen", 0, Type:=1)
If Zeile = 0 Then Exit Sub
Application.EnableEvents = False
For i = ActiveSheet.Index To Worksheets.Count
With Worksheets(i)
.Rows(Zeile).Insert xlDown
.Cells(Zeile, 2) = Application.InputBox("Abtl.", "Abt. einfuegen", Type:=2)
.Cells(Zeile, 3) = Application.InputBox("Name", "Name eintragen", Type:=2)
End With
Next
Application.EnableEvents = True
gruss hary
Anzeige
AW: Button erstellen zum Zeilen einf.
02.07.2021 11:36:10
Smilestyle
Er fügt soweit alles ein , er wiederholt nur immer wieder die Frage nach Abt und nach Name .
Gruß SmileStyle
lol...
02.07.2021 12:07:40
Yal

Dim i As Long, Zeile As Long
Dim Abteilung As String, Name As String
Zeile = Application.InputBox("nach welcher Zeile einfuegen?", "Zeile einfuegen", 0, Type:=1)
If Zeile = 0 Then Exit Sub
Application.EnableEvents = False
Abteilung = Application.InputBox("Abtl.", "Abt. einfuegen", Type:=2)
Name = Application.InputBox("Name", "Name eintragen", Type:=2)
For i = ActiveSheet.Index To Worksheets.Count
With Worksheets(i)
.Rows(Zeile).Insert xlDown
.Cells(Zeile, 2) = Abteilung
.Cells(Zeile, 3) = Name
End With
Next
Application.EnableEvents = True
Gruß
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige