Office: Excel 2003 Makro neue Zeile

Helfe beim Thema Excel 2003 Makro neue Zeile in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Servuz miteinander, ich wollte ein Makro schreiben, in Excel 2003, um eine neue Zeile zu erzeugen. Um den Code zu bekommen, habe ich ein Makro... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Gayne_Wretzky, 18. September 2011.

  1. Excel 2003 Makro neue Zeile


    Servuz miteinander,

    ich wollte ein Makro schreiben, in Excel 2003, um eine neue Zeile zu erzeugen.
    Um den Code zu bekommen, habe ich ein Makro aufgezeichnet.

    Rows("4:4").Select
    Selection.Insert Shift:=xlDown

    Dies funktioniert auch soweit.
    Das Problem ist nur, dass ich mehrere voneinander getrennte Zeilen habe und ich diese gerne einzeln steuern will. d.h. Zeilen Gliederung 1-4 soll einen eigenen Button "Neue Zeile" bekommen und Zeile 5-7 eine eigenen Button.

    Wenn ich nun den jeweiligen Button diese Funktion gebe, ändert sich die Zeilen Nummer.
    z.b. Code s.o: Hier wird die Zeile 4 kopiert und eingeügt.
    Ein anderer Button kopiert die Zeile 7 und fügt diese ein. Das Problem ist nun, wenn ich den ersten Button drücke, stimmt der Code für den 2 Button nicht weil er nicht Zeile 7 sondern Zeile 8 kopieren müssten.

    Also müssten sich die Zeilen Nummer von den folgenden Buttons um eins erhöhen wenn der vorherige Button gedrückt worden ist.

    Hoffe ich konnte das so rüber bringen, das es jeder versteht. :-)

    PS: Könnte mir auch jemand vl. den Code sagen, dass nur eine neue Zeile eingefügt wird, wenn die vorherige z.b. in der Spalte "A4" ausgefüllt ist.

    Vielen Vielen Dank. Noch ein schönes Wochenende

    Gruß manu
     
    Gayne_Wretzky, 18. September 2011
    #1
  2. Exl121150 Erfahrener User
    Hallo!

    Zuerst möchte ich auf eine kleine Diskrepanz in Deinem Posting hinweisen:
    a) Dein Makro fügt nur eine neue Zeile 4 ein.
    b) Andererseits schreibst Du, dass Du die Zeile 4 kopieren und (wieder) einfügen möchtest.

    Ich habe mich in der beiliegenden Excel-Datei für Variante b) entschieden und Dir dort eine entsprechende Musterlösung eingebaut. Dabei wird der Inhalt von Zelle I1 verwendet, um die momentane Zeilennummer für Button2 zu speichern.
    Betätigt man Button1, wird Zeile 4 kopiert und wieder eingefügt. Gleichzeitig wird die Zeilennummer für Button 2 in Zelle I1 um 1 erhöht. Ferner wird die Aufschrift für Button2 entsprechend aktualisiert.

    Dieser Code lautet:
    Code:
        If Range("A4").Value Then
          Rows(5).Insert Shift:=xlDown
        End If
    d.h. ist in Zelle A4 ein Wert (Text oder Zahl) enthalten, dann wird Zeile 5 eingefügt.
     
    Exl121150, 18. September 2011
    #2
  3. Danke schonmal für die Antwort.
    Hat auch soweit super geklappt.

    Nun habe ich aber nochmal eine Frage.
    Ich habe meine Excel datei um einen weiteren Button erweitert.

    Das Problem ist nun folgendes:
    Wenn ich den Button1 drücke wird der Wert für Button2 und 3 um eins erhöht.
    Wenn ich den Button2 drücke wird der Wert für Button3 um eins erhöht.
    So und damit scheitert es. Ich bräuchte eigtl. 2 Zeilen mit unterschiedlichen Werten.

    Vielen Dank schonmal
     
    Gayne_Wretzky, 19. September 2011
    #3
  4. Excel 2003 Makro neue Zeile

    Ok, habs hinbekommen. Ist vl. nicht die feine Art aber es funktioniert.
    Vl. kann mir einer eine andere Vorgehensweise sagen.

    Meine :
    Habe einfach 2 unterschiedliche Zellen mit dem Value Wert hochzählen lassen für die jeweiligen Buttons.
     
    Gayne_Wretzky, 19. September 2011
    #4
  5. Exl121150 Erfahrener User
    Hallo!

    Nur so kann es funktionieren.

    PS: Hilfe zu VBA selbst und zu den in Excel integrierten Objekten gibt es ganz einfach:
    1) Man setzt den Cursor auf das betreffende Wort (Funktion, Methode, Eigenschaft, Ereignis), drückt die F1-Taste und bekommt die Hilfe geliefert.
    2) Man setzt den Makrorecorder ein, um zu sehen, wie ein Detail durch Excel gelöst würde - allerdings sollte man diesen Code dann unbedingt händisch optimieren. Diese Methode habe ich selbst schon oft angewendet.
     
    Exl121150, 19. September 2011
    #5
  6. Danke.
    das hilft schonmal.

    Nur eine Frage noch. Dein Code:
    If Range("A4").Value Then
    Rows(5).Insert Shift:=xlDown
    End If

    Nimmt er bei mir nicht an, weil .value anscheinend falsch ist für Texte. Zahlen nimmt er so an, aber keinen Text.
    Kann das sein?

    gruß
     
    Gayne_Wretzky, 19. September 2011
    #6
  7. Habs hinbekommen.

    Hab einfach, mir von Java bekannt, eine If Else schleifen eingebaut.

    If Range("D11").Value = "" Then
    MsgBox "Bitte erst einen Wert eingeben"
    Else
    Rows(12).Insert Shift:=xDown

    Nochmals danke Excel
     
    Gayne_Wretzky, 19. September 2011
    #7
  8. Exl121150 Erfahrener User

    Excel 2003 Makro neue Zeile

    Hallo!

    Das ist richtig so. Ich wusste nur nicht, welche Werte Du in A4 hast.
    Das funktioniert deshalb bei numerischen Werten, weil in BASIC Vergleichsergebnisse, die ungleich 0 ergeben, zu einem logischen TRUE (=-1) ausgewertet werden, bzw. Vergleichsergebnisse gleich 0 werden zu einem logischen FALSE (=0) ausgewertet.

    Dieser Code ist ja bereits tadellos. Java und BASIC sind doch offenbar nicht so wesensfremd. Nur ein abschließendes "End If" müsstest Du als letzte Zeile noch anfügen. Doch das war sicherlich nur ein Flüchtigkeitsfehler beim Uploaden im Forum.
     
    Exl121150, 19. September 2011
    #8
  9. Guten Morgen,

    ahh ok, jetzt versteht ich auch den hintergrund dazu. Danke
    Mit End If, hast du richtig erkannt. War ein Flüchtigkeitsfehler.

    Jetzt steht mir heute morgen schon wieder ein Problem im Weg :-)

    Wenn ich diesen Code bei mir einsetze, bleibt er mit der Werte Abfrage bei der Zelle D11 stehen. Ich muss ihn aber dazu bringen, dass er immer um den Wert, der in der anderen Zelle (für die Zelle einfügen), erhöht.
    D.h. wenn vorher eine neue Zeile über Button1 hinzugekommen ist, wird die Zelle nun D12, also um eins erhöht.

    Habe schon paar mal probiert dies zu erreichen aber bekomme immer einen Konflikt mit den Objekten usw.

    gruß
     
    Gayne_Wretzky, 20. September 2011
    #9
  10. Exl121150 Erfahrener User
    Hallo!

    Du fügst also vor Zeile 11 mittels Button1 neue Zeilen ein, sodass dadurch Zelle D11 hinunter wandert nach D12, D13, usw. Diese Wanderbewegung findet im gleichen Ausmaß statt wie die Zeilenzählererhöhung für Button2 (durch Button1).
    Angenommen dieser Zeilenzähler für die Einfügezeile von Button2 befinde sich in Zelle I1.
    Auf den Wert dieser Zelle kann man entweder mit
    Range("I1").value
    oder mit
    Cells(1,9).value 'wegen Zeile 1, Spalte 9
    zugreifen.
    Daher folgender Code:
    Code:
    Option Explicit
    Dim Zeile2 As Long
    '....
    '....
    Zeile2 = Cells(1,9).value + y
    If Cells(Zeile2, 4).value = "" Then
       Msgbox "... Text ..."
    Else
       Rows(Zeile2+1).Insert Shift:=xlDown
    End If
    Für y musst Du eine für Dein Arbeitsblatt passende Konstante einsetzen, die sich im Prinzip aus der Differenz 11-Cells(1,9).value errechnet, falls die Abfragezelle sich zu Anfang in D11 befindet.

    Anmerkung: Jedes Objekt hat eine Standardeigenschaft bzw. -methode. Range("D11") bzw. Cells(11,4) liefern (Zeiger auf) Objekte mit Objektklasse "Range". Die Standardeigenschaft von "Range" ist "Value". Diese Standardeigenschaft darf man im Code auch weglassen, sie wird dann automatisch (implizit) ergänzt.
    Mit "Option Explicit" kann man erzwingen, dass der VBA-Compiler den Code nur dann als fehlerfrei akzeptiert, wenn alle Variablen explizit deklariert wurden (also die heimtückische implizite Variablendeklaration durch den Compiler wird dadurch ausgeschlossen - eine für längere Programme sehr wichtige Einrichtung).
     
    Exl121150, 20. September 2011
    #10
Thema:

Excel 2003 Makro neue Zeile

Die Seite wird geladen...
  1. Excel 2003 Makro neue Zeile - Similar Threads - Excel 2003 Makro

  2. Funktion aus Excel 2003 in 2019 gesucht

    in Microsoft Excel Hilfe
    Funktion aus Excel 2003 in 2019 gesucht: Hallo Ihr Lieben, ich suche eine spezielle Funktion in Excel 2019, welche ich aus Excel 2003 kenne. Leider kann ich diese in Ek19 nicht finden, weiss auch nicht wie sie korrekter Weise heisst ......
  3. Excel 2003 öffnet externe Hyperlinks nicht mehr

    in Microsoft Excel Hilfe
    Excel 2003 öffnet externe Hyperlinks nicht mehr: Halo, ich habe ein Problem in Excel 2003, vielleicht kann mir jemand weiterhelfen: das Problem ist, daß Excel 2003 externe Hyperlinks (also Hyperlinks, die auf eine Internet-Seite verweisen)...
  4. Makro in Excel 2003 funktioniert nicht mehr

    in Microsoft Excel Hilfe
    Makro in Excel 2003 funktioniert nicht mehr: Hallo zusammen, ich hatte vor vielen Jahren in Excel 2003 einen Kalender mit Makros erstellt. Nachdem ich auf Excel 2016 gegangen bin, mußte ich feststellen, dass es Fehlermelunden plötzlich gibt,...
  5. Makro in Excel 2003 läuft aber nicht in 2010

    in Microsoft Excel Hilfe
    Makro in Excel 2003 läuft aber nicht in 2010: Hallo ich habe seit Jahren ein funktionsfähiges Makro, das ursprünglich mit dem Makrorecorder aufgezeichnet wurde und etwas modifiziert wurde. Jetzt auf dem Mac läuft es nicht mehr fehlerfrei. Der...
  6. Makro für Excel 2003 in Excel 2007

    in Microsoft Excel Hilfe
    Makro für Excel 2003 in Excel 2007: Hallo, für Excel 2003 wurde mir eine Makro programmiert, die ich jetzt gerne auch in Excel 2007 verwenden möchte. Leider kann ich sie nicht in Excel 2007 finden, obwohl sie dort anscheinend...
  7. [Excel 2003] Probleme bei Makro das bei Zelländerung auslöst

    in Microsoft Excel Hilfe
    [Excel 2003] Probleme bei Makro das bei Zelländerung auslöst: Hallo, ich bin gerade dabei spaßeshalber eine Art Lotto-Datei zu erstellen. Nun habe ich das Problem, dass ich den Wert des Feldes E2 per Makro zum Feld F2 addieren will, das Makro soll jedes...
  8. EXCEL 2003 Makro!! brauche Hilfe bitte....

    in Microsoft Excel Hilfe
    EXCEL 2003 Makro!! brauche Hilfe bitte....: Guten Tag.... ich habe ein Problem mit Excel und zwar möchte ich ein Makro schreiben das in ein Tabellenblatt nach rechts geht etwas kopiert und wieder nach links auf das eine Tabellenblatt und...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden