Inhalt der Zelle einer Variablen zuweisen

Gut, jetzt haben wir einen lesbaren Code. Dan befasse ich mich mal damit:
Ja, ich versuche es! Ich probiere es zu vereinfachen, weil es hat viel zu viele MsgBoxen. Ich muss mich nicht auf die Copy-Bereiche beschränken, die sin sowieso ausgefüllt und wenn man außerhalb des Copy-Bereichs klickt, wird eine leere Zelle kopiert. Langsam verstehe ich die Befehle, und Ich hoffe das ich ein Erfolg haben werde.
DU willst dich nicht auf die Copy-Bereiche beschränken. Das hast du ja

Ein Problem hast du sicher mal damit, dass du den flagInProcess einfach auf true setzt, egal wo im Sheet dass du bist. Erst nachher prüfst du die Bereiche.
Du fragst nach einmal kopieren auch nicht mehr nach, ob weiter kopiert werden soll. Somit wird der flagInProcess nach dem Kopieren NIE zurückgesetzt.
Erst wenn du ausserhalb des Zielbereichs klickst, wird gefragt.
Die folgende Zeile funktioniert nicht mehr, muss ich hier den Befehl flaginProcess = Else setzen?
Was ist Else? Meinst du Not? Jepp. Du hast die Frage umgedreht. Vorher war die Frage "Weiter kopieren" und jetzt "Eingabe beenden". Das ist das Gegenteil. Ergo muss auch gegenteilig ausgewertet werden.
Entweder mit Not oder mit <> anstelle =
 
  1. Else: srcRng.Copy Range("G" & Target.Row & ":H" & Target.Row) dies ist o.k.
  2. srcRng.Copy Range("I" & Target.Row & ":J" & Target.Row) hier weis ich nicht wie die Bedingung schreiben
  3. Ich möchte das Resultat entweder In den G&H oder I&J kopieren
 
Hier ist meine Tabelle als Beispiel:
In die 4 Blöcke aus dem Repertoire Lieder mit Nummern platzieren. Jeder Block ist 8-10 Lieder gross (Spieldauer ca.1Std./ Block). Ursprünglich wollte ich solange die Blöcke füllen bis die Taste "Esc" oder sonstwas betätigt wird.
 

Anhänge

In deinem PDF sind die Daten über mehrere Spalten verteilt und dann kommen erst die Zeilblöcke. Ist dem so? Dass A+B, C+D und E+F als Quelle gelten?

Ich rate davon ab und würde die Daten alle untereinander haben.
 
Schau dir den Code an. Das ist jetzt wirklich einfach zum erweitern.
Visual Basic:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim rowDelta As Integer
    'Nur ausführen, wenn wir gerade nicht im Copy-Process sind

    'Die verschieden Quellbereiche nacheinander prüfen. Sobald ein Treffer ist, die Funktion verlassen
    If handleSource("SRC_1", Target) Then Exit Sub      'AreaAddress ist ein Benannter Range
    If handleSource("C2:D4", Target) Then Exit Sub      'AreaAddress ist eine einfache Adresse
   
   
    If flagInProcess Then
        'Die verschieden Zielbereiche nacheinander prüfen. Sobald ein Treffer ist, die Funktion verlassen
        If handleTarget("TRG_1", Target) Then Exit Sub
        If handleTarget("TRG_2", Target) Then Exit Sub
       
    'Wir sind am Kopieren aber ausserhalb des Zielbereiches
    Else
        'Nachfragen um abzubrechen
'        flagInProcess = MsgBox("Feld ist nicht im Zielbereich. Weiter kopieren?", vbCritical + vbOKCancel) = vbOK
'        showSelectedValue
    End If
   
End Sub
Einfach mehr handleSource() Zeilen einfügen mit den weiteren Quellbereichen.
Und weitere handleTarget() Zeilen mit Zielbereichen einfügen. Um alles andere musst du dich nicht mehr kümmern.

Ab sosfort gibts von mir nur noch Erklärungen. Ich habe dir eine fertige Lösung gegeben, die du beliebige erweitern kannst.
 
Vielen Dank für Deine Mühe . Deine Lösung funktioniert, nun muss ich mit den neuen Anweisungen arbeiten, damit die Ergänzung auch bei mir funktioniert.
 
Hallo Yaslaw, ich habe es fasst geschafft. Es funktioniert so wie es sollte. Ich habe einen .pdf-File-Namen aus
zwei Variablen gebastelt, nun reklamiert der Skript-Editor:Das Funktionsverzeichnis des Programms oder der Erweiterung konnten nicht gelesen werden, da sie nicht skriptfähig sind.Wie kann ich diesen Pdf-File Skriptfähig machen?
sName = sTxt & dTxt ergibt einen Namen z.B. "Test01_04.05.2017.pdf"
 
Zuletzt bearbeitet:
Zurück