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.

aus Zwischenablage einfügen
#11
Hallo Karl,

ja, wir kommen der Lösung schon viel näher.
Was ich nicht verstehe ist, dass diese Fehlermeldung ja kommt obwohl Text in der Zwischenablage ist.
Ich kann die Ablage ja einsehen, nachdem ich etwas per STRG+C kopiert habe.
Bin den Weg jetzt händisch abgegangen und habe es als Makro aufgezeichnet, funktioniert
dann auch einzeln abgerufen.
Jetzt ist "nur noch" das Problem, dass es in den eigentlichen Ablauf mit reinsoll und dann
passiert nichts...

Hier der Ablauf:

Sub Start_Rechnungsnummer()

a = MsgBox("Rechnungsnummer generieren?", vbYesNo)
    If a = vbYes Then

    Range("F21").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"
    Range("F21").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G18").Select
    ActiveCell.FormulaR1C1 = "=R[-17]C[-1]"
    Range("G18").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Call Rechnungsnummer
    Application.CutCopyMode = False
    Range("F1").Select
    ActiveSheet.Paste
   
    End If
   
    End Sub
Antworten Top
#12
Also der letzte Teil:
Code:
Application.CutCopyMode = False
    Range("F1").Select
    ActiveSheet.Paste
funktioniert händisch einwandfrei.

was muss ich tun, damit dieser in dem anderen Ablauf funktioniert.
Ich habe über eine Zeitverzögerung per
Application.OnTime + Now TimeValue ("00:00:05")
aber dann öffnet er das erste per Call aufgerufene Makro einfach später...

Hat da jemand noch eine Idee?
Antworten Top
#13
Moin!
Dein Problem ist keine evtl. Wartezeit, da VBA sequenziell abarbeitet, die Application folglich ohnehin warten muss.
Wenn Du per Call ein anderes Makro abrufst, wird nach Abarbeitung des Makros die Zwischenablage gelöscht!
Entweder die Übergabe erfolgt innerhalb vom Makro "Rechnungsnummer"
oder Du verzichtest auf "externe" Makros und verarbeitest den Code in "Start_Rechnungsnummer".
(oder Du machst aus der Sub Rechnungsnummer eine UDF, die das Ergebnis an die Aufruf-Sub übergibt)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#14
Hallöchen,

... jupp, so sehe ich das auch. Bin nur erst jetzt wieder am Rechner.
Es gibt verschiedene Aktionen, nach denen Excel keinen Zugriff mehr auf die Zwischenablage hat bzw. Daten daraus entfernt werden. Ein einfacher Call gehört zwar meines Wissens nicht dazu, aber wenn dort was zutreffendes gemacht wird dann schon.
Application.CutCopyMode = False gehört übrigens auch dazu.

So, in Deinem Start_Rechnungsnummer wird selbige nicht hochgesetzt. Ich vermute, das passiert im Makro Rechnungsnummer. Vielleicht zeigst Du uns das auch mal.
Ich sehe hier auch nicht, dass Du die Datei mit den Rechnungsnummern öffnest. Oder steht das Makro Start_Rechnungsnummer auch in dieser Datei?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Hallo

Zitat:Mir platzt der Kopf   ...   dagegen hilft NUR 2 Packungen Aspirin schlucken, oder unseren Erfahrungen vertrauen!! 

ich denke für dich ist das letztere die bessere Variante, aber das erfordert eine gute Zusammenarbeit mi uns.
Sorry, hatte wichtige private Dinge in Ankara zu erledigen, kann jetzt erst wieder am Thread teilnehmen.

Anbei mal deinen Code, bereinigt von unnötigen Selects zurück. Erkennst du deinen Code jetzt wieder???

Hinweis:
in deinem Code fehlt jeder Hinwei in welchem Workbook und in welcher Tabbel die Makro Akrtion stattfinden soll.
Sollte beim Öffnen der aktiven Datei eine andere Tabelle Selectiert sein, funktioniert dein Ciode nicht mehr wie gewünscht!
Anfänger wundern sich dann, wieso Excel angeblich "nur Mist baut"- Excel befolgt aber nur sturheil und kritiklos Befehle!

Bitte zeige uns mal alle Makros die in Betrieb sind, dann können wir dir zeigen wie man das viel eleganter lösen kann.

mfg Gast 123

PS.  mich wundert das die Zwischenablage überhaupt funktioniert??? Nach Call Rechnungsnummer steht der Befehl:
Application.CutCopyMode = False.  Damit wird der Kopiervorgang doch gelöscht!! Was wird fann bei euch noch kopiert???

Code:
Sub Start_Rechnungsnummer(
a = MsgBox("Rechnungsnummer generieren?", vbYesNo)
    If a = vbNo Then Exit Sub
    Range("F21").Value = Date
    Range("G18").Value = Range("G18")
    'Call Rechnungsnummer
    Application.CutCopyMode = False
    Range("F1").Select
    ActiveSheet.Paste
End Sub

Nachtrag   Sorry, bei Programmen hampele ich ungern mit Notlösungen wie Zeitverzögerung herum!! Das ist Quatsch!
                 Sowas programmiert man sauber und vernünftig. Dazu müssen wir aber Dateinamen und die Tabellen kennen!
Antworten Top


Gehe zu:


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