Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Erste Schritte - Zeile einfügen klappt mit Problem

Betrifft: Erste Schritte - Zeile einfügen klappt mit Problem von: Christoph
Geschrieben am: 25.09.2014 13:41:10

Hallo,

ich bin neu hier. Ich arbeite nun seit ein paar Tagen mit VBA, um ein Gantt-Diagramm sinnvoll mit Funktionalitäten zu ergänzen. Ich stehe wirklich noch ganz ganz am Anfang der VBA-Programmierung (ggw. erarbeite ich die wesentlichen Grundlagen mit einem Lehrbuch) und bitte daher vorab etwaige (aus Sicht eines VBA-Profis) dümmliche Fragen zu entschuldigen.

Ich habe die entsprechende Datei hochgeladen - https://www.herber.de/bbs/user/92810.xlsm

Mit Hilfe des Buches und von Foreneinträgen habe ich den Button 'Projekt einfügen' mit einem Makro verknüpft, welches am Ende meiner Tabelle eine Zeile einfügt und die Formeln sowie Formate übernimmt.

Leider gibt es dabei zwei Probleme, die ich selber nicht lösen kann:

1.) In Spalte G ist ein DropDown-Menü hinterlegt. Leider wird dieses beim Einfügen der neuen Zeile nicht mit übernommen. Wo liegt dort der Fehler?

2.) Wird nur eine Zelle 'angehangen' und nicht eine neue eingefügt. Dies führt dazu, dass der Button mit der Zeit in der Tabelle befindlich ist und ich dessen Position immer wieder anpassen muss. Wie kann ich dieses Problem beheben?

Für jede Hilfe bin ich sehr sehr dankbar. Ich wünsche noch einen schönen und erfolgreichen Tag.

VG, Christoph

  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: JoWE
Geschrieben am: 25.09.2014 14:20:34

Hallo Christoph,

sofern Du einen 'Namen' für die Daten aus der Tabelle "Drop-Down Maßnahme" gebildet hast und Du diesen 'Namen' beim Erstellen der Gültigkeit (z.B. 'zulassen Liste'; 'Quelle =Art_der_Maßnahme') für den Bereich der Spalte G festgelegt hast, sollte dies beim Anfügen der neuen Zeile funktionieren, denn das Makro kopiert ja die Vorgängerzeile incl. Gültigkeit in Spalte G und löscht nur die Konstanten. Ich habe das Makro "NeueZeile" unter diesen Bedingungen mit XL2010 getestet. Klappt ohne Fehler.

Gruß
Jochen


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Christoph
Geschrieben am: 25.09.2014 15:00:04

Hallo Jochen,

vielen vielen Dank für Deine schnelle Antwort. Leider hänge ich noch etwas bei dem Problem. Ich habe den Daten einen Namen ('Maßnahmen')zugewiesen und nutze diesen für die Quelle der Gültigkeitskriterien. Das Drop-Down befindet sich in G5:G68. Wenn ich nun den Button betätige, wird das Drop-Down in der neuen Zelle leider nicht übernommen.

Überdies besteht auch noch das Problem, dass das Makro eine Zelle 'anfügt' statt eine Zelle einzufügen. Wenn ich jetzt 10 Zeilen anfüge führt dies unweigerlich dazu, dass die Schaltfläche in der Tabelle 'verschwindete'.

Ich habe die Datei nochmal hochgeladen. Ich wäre dir sehr sehr dankbar, wenn Du oder jemand anderes mir nochmals behilflich sein könnte/könnten

https://www.herber.de/bbs/user/92814.xlsm

Vielen vielen Dank im Voraus, Christoph


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: JoWE
Geschrieben am: 25.09.2014 15:41:51


Definiere desn Bereich neu: G5:G70 (weiter als der bisher genutzte Bereich)


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Christoph
Geschrieben am: 25.09.2014 15:48:28

Ok, dann habe ich das Dropdown-Menü aber in allen 'leeren Zeilen' bevor ich überhaupt den Button "neue Zeile" genutzt habe. Geht es nicht auch vielleicht etwas eleganter - sodass das Dropdown erst eingefügt wird, wenn ich auch den Button betätige?

Überdies noch die Frage wie ich es hinbekomme, dass die Zeile eingefügt und nicht angefügt wird. Ich möchte nicht immer die Position der Schaltfläche und der Grafik anpassen müssen.

Danke an Euch alle und einen schönen Tag noch...


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Adis
Geschrieben am: 25.09.2014 20:35:01

Hallo

zum Problem des Button verschieben, das ander muss ich mir noch ansehen.
Den Button mit rechter Maustaste anklicken: ruft -Objekt formatieren- auf
Es gibt drei mögliche Objekt Einstellungen, in Bezug auf Spalte/Zeile:
Die letzte Einstellung müsste das Button verschieben Problem beheben.

von Zellgrösse und Position abhaengig
nur von Zellposition abhaengig
von Zellposition und Grösse unabhaengig

Gruss Adis


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Adis
Geschrieben am: 26.09.2014 02:26:27

Hallo

anbei ein geaendertes Makro mit dem man mehrere Zeilen eingefügt kann
Die Zeilen weren nach unten verschoben, durch Methode: .Insert xlDown
Ich habe dafür statt Intersect die alte Methode Range verwendet.
Würde mich freuen wenn es klappt.

Den Button beim einfügen in der Position belassen: mit Zelle verankert

Sub NeueZeile_Neu()
Dim Zeile As Long
With ActiveSheet
   'Zeilennummer:
   a = InputBox("Bitte Anzahl neue Zeilen eingeben  (max. 10)")
   If a < 1 Then a = 1 Else If a > 10 Then a = 10
   Zeile = .Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
   'Kopieren:
    Range(.Rows(Zeile - a), .Rows(Zeile - 1)).Copy
   .Cells(Zeile, 1).Insert xlDown
   Application.CutCopyMode = False
    
   'Werte löschen
   Zeile = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
   Range(.Rows(Zeile - a + 1), .Rows(Zeile)).SpecialCells(xlCellTypeConstants).ClearContents
End With
End Sub
Gruss Adis


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Christoph
Geschrieben am: 26.09.2014 09:06:28

Hallo Adis,

tausend Dank für deine Hilfe. Das Ganze funktioniert einwandfrei und ich habe überdies ein perfektes Makro, anhand dessen ich meine VBA Kenntnisse erweitern kann. Es sei Dir nochmals gedankt und einen schönen Tag Dir.

VG, Christoph


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Christoph
Geschrieben am: 26.09.2014 19:35:36

Hallo Adis,

entschuldige, dass ich dich nochmals behellige. Mir ist ein Problem aufgefallen. Wenn ich in der Maske auf abbrechen drücke bricht das Makro nicht ab, sondern fügt 10 Zeilen ein. Kannst du mir da behilflich sein?

Danke Danke. VG, Christoph


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Adis
Geschrieben am: 27.09.2014 01:47:56

Hallo

Sorry, mein Fehler, habe ich leider übersehen. Um (Exit Sub) erweitern.
Ich habe noch ein zweites Makro, setze es auch in den anderen Thread
Die dynamische Erweiterung für die Sortier Routine, über z = Zeile
Geprüft wird die Endzeile in 2 Spalten, zur Sicherheit. Objekt + PLZ
Wegen dem Server musste ich Exit in Klammer setzen, bitte ohne () einfügen

a = InputBox("Bitte Anzahl neue Zeilen eingeben (max. 10)")
If a = Empty Then (Exit Sub) 'Ende bei Cancel

Sub ProjekteSortierenDatum_Neu()
'in Spalte Objekt + PLZ End Zeile finden
o = Range("C5").End(xlDown).Row
z = Range("D5").End(xlDown).Row
If o <> z Then
   If o > z Then z = o  'Warn Hinweis bei ungleichmaessigen Spalten
   MsgBox "Spalte C + D nicht korrekt ausgefüll - Sortiert wird bis Zeile  " & z
End If
With ActiveSheet.Sort
     .SortFields.Clear
     .SortFields.Add Key:=Range("I:I"), SortOn:=xlSortOnValues, Order:=xlAscending
     .SetRange Range("B4:AU" & z)   'Range dynamisch über z = Zeile
     .Header = xlYes
     .Apply
    End With
End Sub
Gruss Adis


  

Betrifft: AW: Erste Schritte - Zeile einfügen... von: Christoph
Geschrieben am: 29.09.2014 11:23:05

Morgen Adis,

vielen vielen Dank für deine beiden Lösungen. Funktionieren beide super - you made my day. Tausend Dank nochmals und einen schönen Tag Dir.

VG, Christoph


 

Beiträge aus den Excel-Beispielen zum Thema "Erste Schritte - Zeile einfügen klappt mit Problem"