Office: Mal wieder ein Makro job to do

Helfe beim Thema Mal wieder ein Makro job to do in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Wow das funktioniert hervorragend :) Danke OK ich habs glaub geschafft. Das einzige Problem ist nun die MsgBox. Kannst du mir evtl. sagen wie Ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von N123456789, 26. Juli 2011.

  1. N123456789 Erfahrener User

    Mal wieder ein Makro job to do


    Wow das funktioniert hervorragend :) Danke

    OK ich habs glaub geschafft.

    Das einzige Problem ist nun die MsgBox. Kannst du mir evtl. sagen wie Ich es schaffe eine MsgBox zu kreieren die Heißt "Rechnungen"

    und als Text:

    - Überschrift 1
    - Koordinatenpaar 1 (y1,x1)
    - Absatz
    - Überschrift 2
    - Koordinatenpaar 2 (y1,x2)
    - Absatz
    - Überschrift 3
    - Koordinatenpaar 3 (y1,x3)

    Wie du siehst möchte ich die Überschriften Konstant beibehalten und die Koordinatenpaare sollen variabel sein. Ist das so noch möglich?

    Den absatz hast du mir ja shcon geschrieben & Chr(13) & aber die koordinatien bekomme ich nicht eingefügt

    wäre super wenn wir das Projekt damit noch abschließen könnten :)
     
    N123456789, 28. Juli 2011
    #16
  2. miriki Erfahrener User
    Ach, die Sicherheits-Abfrage? Die hatte ich ja ganz vergessen...

    Füge ein:
    Code:
        Dim s As String
        Dim jn As Long
        Dim y1 As Long
    Code:
            If (y1 > 0) Then 'es wurde ein gültiger zahlenwert eingegeben
    
                s = w1.Cells(y1, 3).Value & " ( z" & y1 & " | s3 )" & Chr$(10) & _
                    w1.Cells(y1, 6).Value & " ( z" & y1 & " | s6 )" & Chr$(10) & _
                    w1.Cells(y1, 9).Value & " ( z" & y1 & " | s9 )"
                jn = MsgBox(s, vbOKCancel, "Kopieren?")
                If (jn = vbOK) Then
    
                For n = 1 To w
    Code:
                w2.Activate
    
                  Else
                    MsgBox "ok, dann eben nicht..."
                End If
    
              Else
    (die jeweils 1. und letzte Zeile nicht einfügen, die dienen nur als Orientierung!)

    Die Zeile mit "s = ..." baut Dir eine Zeichenkette aus einigen Werten des Blatts und den entsprechenden Koordinaten auf. Diese Meldung wird dann in einer Messagebox mit OK/Abbruch-Abfrage und der Überschrift "Kopieren?" angezeigt. Nur, wenn "OK" angeklickt wird, wird der innere Teil durchlaufen, ansonsten kommt die "ok, dann eben nicht..." Meldung.

    Mangels Testdaten alles jetzt ein wenig "Trockenschwimmen", aber ich hoffe, es funktioniert trotzdem... ;-)

    Gruß, Michael
     
    miriki, 28. Juli 2011
    #17
  3. N123456789 Erfahrener User
    Mhm er meldet:

    Fehler beim Kompilieren:
    Variable nicht definiert!

    Und wenn ich "OK" klicke dann markiert er das "jn="
    von der Code Zeile jn = MsgBox(s, vbOKCancel, "Kopieren?")

    wenn ich diesen code einfüge
    Code:
                s = w1.Cells(y1, 3).Value & " ( z" & y1 & " | s3 )" & Chr$(10) & _
                    w1.Cells(y1, 6).Value & " ( z" & y1 & " | s6 )" & Chr$(10) & _
                    w1.Cells(y1, 9).Value & " ( z" & y1 & " | s9 )"
                jn = MsgBox(s, vbOKCancel, "Kopieren?")
                If (jn = vbOK) The
    Ist es darüber hinaus noch eine Letzte Kästchen Abfrage rein zumachen mit true or fasle?
    Weil wenn nicht aktiv (false) passiert nichts wenn aktive (true) dann füge einen Satz (Entsprechend einer Bescheinigung des Regierungspräsidiums in Freiburg ist dieser Kurs von der Umsatzsteuer befreit) an der stelle "E49" ein. Die Kästchenabfrage wäre nach der Inputbox perfekt oder gleich in die Inputbox rein. Aber das ist wahrscheinlich zu viel aufwand oder?


    Zusatz:

    wenn ich Dim jn as Long definiere dann gehts. es fehlt am ende Dann noch ein End if und fertig ist dein Meisterwerk. das mit der Messegebox werde ich versuchen noch zumzukomodeln. Aber du hast mir echt richtig viel geholfen vielen vielen Dank. Ich werde die ganze nacht heute noch ein bisschen rumprobieren. :)
     
    N123456789, 28. Juli 2011
    #18
  4. N123456789 Erfahrener User

    Mal wieder ein Makro job to do

    Hallo Michael,

    ich weiß ich überflute dich gerade, ständig neuem Zeug Das Makro funktioniert soweit, doch gibt es noch einen Punkt den wir vielleicht zusätzlich aufnehmen könnten.

    Kann man eine Schleife einbauen die mich nach dem ersten Kopiervorgang sofort abfragt ob ich eine zweite Zeile (aus der Datenbank) kopieren will die den exakt selben Ablauf hat. Nur das die einfügenden werte bei der zweiten Schleife 3 - 4 Zeilen Tiefer sind?

    Achso vielleicht zur Info der Commandbutton war gar nicht notwendig. Ich schreib dir mal was ich bisher habe

    Code:
    Option Explicit
    
     Sub Rechnungen()
    
        Const w = 3
        Const t1 = "Liste"
        Const t2 = "Übersicht"
    
        Dim w1 As Worksheet
        Dim w2 As Worksheet
        Dim s As String
        Dim y1 As Long
        Dim x1 As Long
        Dim y2 As Long
        Dim x2 As Long
        Dim n As Long
        Dim jn As Long
        
        Set w1 = Worksheets("Datenbank")
        Set w2 = Worksheets("Rechnung")
    
        s = InputBox("Rechnungs-Relevante ZEILE?", "RECHNUNG")
        If (s <Then> 0) Then
                        w1.Cells(y1, x1).Copy Destination:=w2.Cells(y2, x2)
                    End If
                Next n
    
                w2.Activate
    
              Else
                MsgBox "Bitte Ganz genau die Zeile überprüfen!!!"
    
            End If
    
              Else
                MsgBox "Falsches Makro???"
    
        End If
    End If
    End Sub
    
     
    N123456789, 28. Juli 2011
    #19
  5. N123456789 Erfahrener User
    Also egal was ich mache er lässt mich das Makro nicht vollständig hier einfügen. Das ist definitiv nicht alles. Aber wir bekommen das hin davon bin ich überzeugt :)
     
    N123456789, 28. Juli 2011
    #20
  6. miriki Erfahrener User
    Hast Du nur den Code aus dem mittleren Block eingefügt? Das "dim" und das "end if" waren eigentlich auch mit aufgeführt...

    Wenn man Text hat, in dem "größer" und "kleiner" Zeichen vorkommen, ist es sinnvoll, den haken "HTML in diesem Beitrag deaktivieren" (direkt unter dem Editor-Fenster) zu setzen.

    Wenn Du eine Checkbox (Steuerelemente-Toolbox) auf dem Blatt "Titel" platzierst und die "LinkedCell"-Eigenschaft auf "D5" setzt, kannst Du mit folgender Erweiterung was werden:

    Code:
        Const w = 3
        Const t0 = "Titel"
        Const t1 = "Liste"
    Code:
        Const t2 = "Übersicht"
        Const z = "Entsprechend einer Bescheinigung des Regierungspräsidiums in Freiburg ist dieser Kurs von der Umsatzsteuer befreit"
    
        Dim w0 As Worksheet
        Dim w1 As Worksheet
    Code:
        Dim n As Long
    
        Set w0 = Worksheets(t0)
        Set w1 = Worksheets(t1)
    Code:
                    Next n
                    If (w0.Cells(5, 4).Value = True) Then
                        w2.Cells(49, 5).Value = z
                    End If
    
                    w2.Activate
    Gruß, Michael
     
    miriki, 29. Juli 2011
    #21
  7. miriki Erfahrener User
    Och, grundsätzlich schon. VBA hat nur eklatante Probleme mit der Formulierung "3 - 4 Zeilen tiefer". Strikt weigern würden VBA und Excel sich z.B. bei 3,141592657 Zeilen tiefer... ;-)

    Ist vielleicht wieder eine Frage der Ergonomie, des Ablaufs der Routine. Ich würde eigentlich eher vorschlagen, daß man vor der Aktion (Button-Klick oder was auch immer) die Rahmenbedingungen festlegt. Wie im anderen Beispiel mit dem Zusatztext könnte auch für diese Abfrage eine Checkbox gesetzt werden.

    Das Kopieren der Werte aus der zusätzlichen Zeile könnte dann direkt in der bisherigen Schleife mit erledigt werden.

    Wenn die Abfrage aber nach dem 1. Kopieren kommen soll, dann würde das eine gewisse Umstrukturierung des Codes bedeuten. Die Kopier-Routine würde ich dann in eine eigene Routine verlegen, die dann 2x aufgerufen werden kann.

    Hm, naja, es braucht nur irgendein auslösendes Ereignis, um den Kram zu starten. Das kann ein Button sein, aber Du kannst das Makro auch auf einen Hotkey legen. Da gibt es durchaus viele Möglichkeiten.

    Gruß, Michael
     
    miriki, 29. Juli 2011
    #22
  8. N123456789 Erfahrener User

    Mal wieder ein Makro job to do

    Hallo Michael,
    ok die Schleife lassen wir dann vielleicht erst einmal. Ich habe ein größeres Problem festgestellt. Ich habe bei der Erprobung des Makros mit Dummys gearbeitet.
    Als ich gestern Nacht auf die original Datei umspringen wollte, übertrug das Makro die Werte 0,00€. Ich befürchte das Problem ist, dass meine Quellzelle (z.b. y29x8) berechnet wird aus F29+G29 also aus den beiden davorliegenden Zeilen. Ich habe noch mehrere zu kopierende Zeilen die erst berechnet werden müssen. Wird das zum großen Problem?

    Viele Grüße Nico
     
    N123456789, 29. Juli 2011
    #23
  9. miriki Erfahrener User
    Das ist kein großes Problem, aber eine wichtige Information. Dann muß das Kopieren nämlich geringfügig anders ablaufen.

    Normalerweise (manuell) kopiert man ja mit Strg-C eine Zelle und fügt sie mit Strg-V wieder ein. Im Menü "Bearbeiten" stehen diese Hotkeys neben den Befehlen "Kopieren" und "Einfügen".

    Was Du aber brauchst, ist das "Inhalte einfügen...", wo dann "nur Werte" angehakt wird. Das läuft in VBA dann in zwei Schritten ab:

    Ersetze die folgende Zeile:
    Code:
                            w1.Cells(y1, x1).Copy Destination:=w2.Cells(y2, x2)
    durch diese beiden:
    Code:
                            w1.Cells(y1, x1).Copy
                            w2.Cells(y2, x2).PasteSpecial Paste:=xlPasteValues
    Dann sollte es gehen.

    Gruß, Michael
     
    miriki, 29. Juli 2011
    #24
  10. N123456789 Erfahrener User
    Super Michael,

    Darf ich dich von heute an VBA/Excel König nennen? Funktioniert!!!!

    Ich werde nun etwas an der Formatierung schrauben und wenn noch einmal probleme auftauchen sollten werde ich mich wieder melden :)

    Was mit sicherheit noch kommen wird, ist das Exportieren der in Excel erstellten Rechnung in Word.

    Ich bedanke mich recht herzlich für deinen langen Atem mit mir und ich wünsche dir ein wohlverdientes, erholsames und schönes Wochenende

    Vielen Dank und viele Grüße

    Nico
     
    N123456789, 29. Juli 2011
    #25
  11. miriki Erfahrener User
    Oha... Wenn Du Dein komplettes Rechnungs-Formular in Excel aufgebaut hast, also inklusive aller Seiten-Formatierung usw., wieso dann noch in Word übertragen?

    Hakelig wird das in jedem Fall werden... Eine Alternative wäre ein Rechnungsformular in Word, das über die Serienbrief-Funktion mit Daten aus Excel gefüttert wird.

    Wie auch immer, da würde ich mir sehr früh Gedanken über den Weg machen, bevor Du da in eine Sackgasse läufst und wieder von vorne anfangen mußt.

    Ach, kein Thema, gern geschehen. Freut mich, wenn es letztendlich funktioniert.

    Gruß, Michael
     
    miriki, 29. Juli 2011
    #26
  12. N123456789 Erfahrener User
    oh, dass ist schade. In dem fall löse ich das Problem mit dem FreePDF XP generator im Druckmenü. Damit kann ich die Pdf bzw. die Rechnung dann in meinem Kundenordner speichern und gleichzeitig drucken.

    Zu den ganzen Druck vorgägnen und Speichervorgängen werde ich auch noch ein Makro schreiben müssen, da ich 2 Fälle habe. Einmal mit Briefkopf und Logo und einmal ohne. Ich möchte beim Makroknopf Drucken die Auswahl zwischen Druck "alles wie es ist" und "entferne zuerst das Logo und dann drucken".

    Das muss aber heute noch nicht sein. Ich will schritt für schritt erst einmal das Layout der Rechnung fertig haben und dann kümmer ich mich um den Rest.

    Da mein Vater nun gesehen hat wie toll Makros sind, hat er auch schon die nächste Aufgabe für mich gefunden.

    Ich danke noch einmal für die tolle Unterstützung. Ich werde mich melden sobald wieder ein Problem vor liegt. Bravo für die tolle Leistung.

    Schönes Wochenende

    Gruß Nico
     
    N123456789, 29. Juli 2011
    #27
Thema:

Mal wieder ein Makro job to do

Die Seite wird geladen...
  1. Mal wieder ein Makro job to do - Similar Threads - Makro job

  2. Name der Datei durch Excel geändert

    in Microsoft Excel Hilfe
    Name der Datei durch Excel geändert: Hallo und guten Abend, Die Datei wird mittels Button (VBA) zwischen gesichert. Das Makro sichert zuvor die Datei und erstellt zus. eine Sicherungsdatei mit der Erweiterung Beispiel-"Sich"....
  3. Ein Makro für mehrere Register

    in Microsoft Excel Hilfe
    Ein Makro für mehrere Register: Moin, ich habe ein Makro wo Daten aus dem Register Master kopiert werden und Register, das mit einem Datum beschriftet ist. Ich möchte in Jedem Register ein Button haben was Daten aus dem Master...
  4. Makro öffnet unerwartete Datei

    in Microsoft Excel Hilfe
    Makro öffnet unerwartete Datei: Hallo Forum, ich brächte euer Schwarmwissen. Arbeite mit Excel eine Auftragsbearbeitung. Dort habe ich mir einen Button mit Makro erstellt und nutze diesen schon lange. Das Makro generiert ein...
  5. Leerzeilen entfernen

    in Microsoft Word Hilfe
    Leerzeilen entfernen: Hallo in die Runde, ich habe das Problem bzw. den Wunsch in einem DOC die Leerzeilen zu entfernen und das per Makro. Allerdings gelingt es nicht Hintergrund das DOC wird aus einer Dot-Datei...
  6. Makro Schaltflaechen vervielfaeltigen sich....

    in Microsoft Excel Hilfe
    Makro Schaltflaechen vervielfaeltigen sich....: Hallo Zusammen, ich habe eine Exceldatei, die seit ein paar Wochen sehr langsam zu öffnen und zu bearbeiten ist. Zuvor war sie ca. 8MB gross, was sich verdoppelt hat. Ich habe alle Zellen die...
  7. Seit Win 11 Zugriffsprobleme bei Excel über Makros

    in Microsoft Excel Hilfe
    Seit Win 11 Zugriffsprobleme bei Excel über Makros: Guten Tag! Ich habe vor einer Woche mein Windows 10 auf Windows 11 geupgraded, und seitdem habe ich extreme Schwierigkeiten mit meinem Excel. Mit Windows 10 funktionierte alles so, wie es sollte,...
  8. VBA-Makro zur Zellenformatierung Syntax probleme

    in Microsoft Excel Hilfe
    VBA-Makro zur Zellenformatierung Syntax probleme: Hallo zusammen, ich möchte per Makro Zellen formatieren. Tausender-Trennzeichen 3 Nachkommastellen Positive Zahlen Schwarz Negative Zahlen Rot Nullwert mit - Hinter der Zahl soll noch eine...
  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