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.

Neue Zeile mit gleichen Formatierungen
#1
Guten morgen Leute,

schonmal vor ab ich kann relativ gut mit Excel arbeiten, aber Makros hatte ich mir noch nicht angeschaut.

Zu meinem Vorhaben:
Ich habe vor ein Bestellformular in Excel zu erstellen, momentan nutze ich Word, sehr umständlich, aber das Prinzip der Tabellenerweiterung möchte ich in Excel nachbilden. Die Anzahl der Artikel ist variabel, kann nur 2 sein oder auch 20 usw. In diesem Formular sind am Anfang und am Ende Textpassagen eingefügt, die immer da sein müssen (keine Kopf- oder Fußzeile). Nun, ich möchte jetzt zwischen diesen Textpassagen die zu bestellenden Artikel einfügen, dabei habe ich zwei Zeilen pro Artikel vorgesehen, Bezeichnung und Artikelnummer untereinander.
Um nicht jedes Mal eine neue Zeile einzufügen zu müssen, per Hand, wollte ich es automatisieren, jedes Mal wenn ein neuer Artikel eingetragen wird, sollte sich der Bereich zwischen den Textpassagen vergrößern, indem eine neue "Zeile" eingefügt wird. Die neu eingefügte "Zeile" soll genau dasselbe Format haben und aus zwei Zeilen bestehen sodass man weiter eintragen kann ohne Zeilen einzufügen und das Format zu übertragen.

Ich hoffe ich habe mein Problem verständlich erläutert und hoffe auf erfolgreiche Lösungsansätze.

Vielen Dank schon mal.

Gruß
Antworten Top
#2
Hallo,

Ich hoffe ich habe mein Problem verständlich erläutert

Nein, für mich zumindest nicht.
Mach doch mal bitte eine Beispielmappe in der du dein Vorhaben erläuterst und lade diese hier hoch.


Gruß Werner
Antworten Top
#3
Die rot markierte Bereiche sind die die am Anfang und am Ende stehen sollten.

Ich will nun Artikel eintragen, aber bei Position 8 bzw. 9 ist Schluss, weil nun der Text kommt, jetzt muss ich Zeilen einfügen und Format übernehmen etc.
Und das möchte ich automatisieren, das ich dies nicht per hand machen muss.

Gruß


Angehängte Dateien
.xlsx   Formular.xlsx (Größe: 14,66 KB / Downloads: 7)
Antworten Top
#4
Hi,

dann speichere Deine Datei als XLSM oder XLSB ab, füge über die "Entwicklertools" - "Einfügen" einen Formular-Button ein und weise ihm dieses Makro in einem allgemeinen Modul zu:

Modul mdl_Artikelblock_einfügen
Option Explicit 

Sub Zeilen_einfügen()
'
' in aktueller Zeile wird ein neuer Artikelblock eingefügt
'
Dim Zeile As Long
'
   Zeile = ActiveCell.Row
   Range("A15:G16").Copy
   Range("A" & Zeile).Insert Shift:=xlDown
   Application.CutCopyMode = False
   Range("A" & Zeile & ":G" & Zeile + 1).ClearContents
End Sub

Zum Starten klickst Du in die erste Zeile unter Deinem letzten eingetragenen Artikel und drückst auf den Button.

.xlsb   Formular - Rabe.xlsb (Größe: 19,84 KB / Downloads: 8)
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • excelon
Antworten Top
#5
@Rabe

Das ist natürlich eine sehr einfache und elegente Lösung.
Aber dann muss ich immer wieder nach oben scrollen, wenn ich 100 Elemente einfügen möchte.

Gruß
Antworten Top
#6
Hi,

ich habe ja das Fenster in der Ansicht in der 4. Zeile fixiert und den Button oben hingesetzt. Dann muß nicht mehr gescrollt werden.

Du kannst dann natürlich das Makro auch so erweitern, daß Du mit einer Inputbox die Anzahl der einzufügenden Zeilen abfrägst.
Option Explicit

Sub Zeilen_einfügen()
  '
  ' in aktueller Zeile wird ein neuer Artikelblock eingefügt
  '
  Dim Zeile As Long
  Dim Anzahl As Long
  Dim i As Long
  '
  Anzahl = InputBox("Bitte die Zahl der einzufügenden Zeilen eingeben!", "Anzahl Zeilen")
  For i = 1 To Anzahl
     Zeile = ActiveCell.Row
     Range("A15:G16").Copy
     Range("A" & Zeile).Insert Shift:=xlDown
     Application.CutCopyMode = False
     Range("A" & Zeile & ":G" & Zeile + 1).ClearContents
  Next i
End Sub
Antworten Top


Gehe zu:


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