Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Befehle manuell anstatt automatisch

VBA Befehle manuell anstatt automatisch
26.05.2023 09:04:32
Tomi

Hallo zusammen

Könnten mir bitte jemand das coding unten so anpassen. Dass es nur ausgeführt wird, wenn man auf Play oder einen Button klickt. Zurzeit wird es immer automatisch im Arbeitsblatt ausgeführt.


Modul:


Public Sub Zeile_verschieben_2(s1 As Worksheet, c1 As Range)

    Dim s2 As Worksheet

    If ((c1.Cells.Count = 1) And (c1.Column = 21)) Then
        Select Case c1.Value
            Case "":
                Set s2 = Nothing
            Case "Bezahlt":
                Set s2 = Worksheets("Bezahlte_Bestellungen")
            ' ...
            Case Else
                Set s2 = Nothing
                MsgBox "Gibt ein Zahlungsfehler"
        End Select
        If (Not s2 Is Nothing) Then
            s1.Rows(c1.Row).Cut Destination:=s2.Rows(s2.Cells(65536, 1).End(xlUp).Row + 1)
        End If
    End If

End Sub



In jedem Arbeitsblatt:


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Zeile_verschieben_2 ActiveSheet, Target

End Sub


18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 09:34:03
Oberschlumpf
Hi,

1. Füge in der Exceltabelle über "Entwicklertools/Einfügen" einen Button hinzu, z Bsp ActiveX-Steuerlement
2. Klick mit rechter Maustaste auf den Button und wähle "Code anzeigen" aus
3. Im Klick-Ereignis des Buttons fügst du nun die Zeile aus dem Change-Ereignis ein
4. Lösch diese eine Zeile aus dem Change-Ereignis

Hilfts?

Ciao
Thorsten


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:17:17
Tomi
Hallo Thorsten

Den Button habe ich jetzt hinzugefügt und das VBA sieht wie folgt aus.


ption Explicit

Private Sub CommandButton1_Click()
Private Sub Worksheet_Change(ByVal Target As Range)

    Zeile_verschieben_2 ActiveSheet, Target


End Sub
In allen anderen Arbeitsblätter habe ich die worksheet_change gelöscht. Ausser das Modul coding Zeile_verschieben_2

Es funktioniert leider noch nicht.Was ist das Problem?


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:39:17
Oberschlumpf
Hi,

mach es so:

Private Sub CommandButton1_Click()

    Zeile_verschieben_2 ActiveSheet, Target

End Sub
Ciao
Thorsten


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:49:02
Tomi
Hallo Thorsten

Ich habe es so eingetragen. Ich bekomme die Fehlermeldung Variable nicht kombinierbar. Was könnte das Problem sein? Soll ich dir eine beispeils excel hochladen?


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 11:00:39
Oberschlumpf
ups, sorry, hab das Target übersehen!

Hi,

versuch es so:

 Private Sub CommandButton1_Click()
 
     Zeile_verschieben_2 ActiveSheet, ActiveCell
 
 End Sub

Und ja, wenn das auch nich hilft, zeig bitte per Upload eine hilfreiche Bsp-Datei.

Ciao
Thorsten



Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 09:37:41
Daniel
HI
schreibe in einem allgemeinen Modul das Makro.

Sub Zeile_Verschieben_2_Start()
Zeile_verschieben_2 ActiveSheet, Selection
End Sub
erstelle dann einen Button aus der Gruppe der Formularsteuerelemente und weise ihm dieses Makro zu.

lösche das Worksheet_Change-makro

Gruß Daniel


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:09:54
Tomi
Hallo Daniel

Vielen Dank für deine Hilfe.

Ich habe ein Modul mit deinem Coding erstellt und der schaltfläche zugewiesen.

In allen Arbeitsblätter habe ich auch das worksheet_change gelöscht.

Leider funktioniert noch nichts. An was könnte das liegen?


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:26:49
Daniel
naja "funktioniert nicht", ist als Fehlerbeschreibung ungefähr so hilfreich für das Erimittlen der Fehlerursache wie "machs anders" als Hilfestellung.
irgendwie muss sich das "funktioniert nicht" ja bemerkbar machen (Fehlermeldung oder was ähnliches) und das könntest du beschrieben (und dann stellt sich die Frage, warum du nicht von alleine daruf gekommen bist, das zu tun)
so bleibt mir nur raten was es sein könnte und auf ein Rate-Pingpongspiel hab nicht so richtig lust (außer, du zahlst mir für jede abgegebne Vermutung 20€, dann gerne ;-))
was mir so spontan einfällt, wäre dass du das Makro "Zeile_verschieben_2" im Modul des Tabellenblatts erstellt hast und es hierfür auch in ein allgemeines Modul gehört.
Wenn ich da richtig geraten habe, was habe ich jetzt gewonnen?
Gruß Daniel


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:40:14
Tomi
Hallo Daniel

Das Modul ist im "Zeile_verschieben_2" ist in einem allgemeinem Modul nicht im Tabellenblatt.
Das Modul "Zeile_verschieben_2_start" habe ich auch in eine allgemeines Modul erstellt.

Die Tabellenblätter module sind somit leer.

Wenn ich den Button anklicke, passiert nicht.

Brauchst du mehr informationen? oder eine Beispiel Datei?


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 10:50:06
Daniel
und das Makro hast du dem Button zugewiesen?
wenn ich dir sagen soll, was du falsch gemacht hast, muss ich wissen, was du tatsäch gemacht hast.
natürlich hiflt da die Datei am meisten weiter, das ist wie beim Arzt, der Patient muss auf den Tisch. Eine Ferndiagnose per Telefon über einen dritten ist schwierig.


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 11:19:18
Daniel
Hi
funktioniert doch alles.
Das Makro ist richtig verknüpft und wird auch ausgeführt.
Wo ist dein Problem??????????

ich vermute mal, du verstehst deinen eigen Code nicht.
diese Zeile
If ((c1.Cells.Count = 1) And (c1.Column = 21)) Then
sagt aus, dasss du, um eine Zeile ins andere Blatt zu verschieben, genau eine Zelle in der Spalte 21 markieren musst, dann wird diese Zeile ins andere Blatt verschoben, wenn in dieser Zelle "Bezahlt" drin steht.
also dein Makro funktioniert, es es macht genau das, was du programmiert hast.

Gruß Daniel


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 11:24:52
Tomi
Hallo Daniel

Dann ist mein coding falsch. Ich möchte, dass bei einem Klick alle bezahlten in das neue Arbeitsblatt gehen. Nicht das ich es anwählen muss.

Weisst du wie man das coding so abändern muss?


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 11:40:33
Tomi
Hallo Daniel

Ja, die Textverkettung war super hat funktioniert.

Das mit Wahr geht leider nicht, da es im Arbeitsblatt "Bezahle_Bestellungen" die Positionen überschreibt.

Deswegen habe ich ein anderes Modul erstellt.


AW: VBA Befehle manuell anstatt automatisch
26.05.2023 11:46:44
Daniel
naja, schau mal
du hattest da was von DRINGEND geschrieben und nach nicht mal einer halben Stunde Antwort bekommen.
Trotzdem gab es kein Dankeschön oder eine Rückmeldung von Dir.
ich weiß ja nicht, was du denken würdest, wenn du hier meine Rolle hättest, aber bei mir wirkt sich sowas eher negativ auf meine weitere Hilfsbereitschaft aus.
Gruß Daniel


Anzeige
AW: VBA Befehle manuell anstatt automatisch
26.05.2023 12:00:13
Tomi
Hallo Daniel

Sorry für das vergessen der Rückmeldung. War zu diesem Zeitpunkt sehr im Stress.

Kann man das coding so abändern, dass die gesamte Zeile U nach dem Status bezahlt überprüft wird und dann bei ausführen des Knopfes alle auf einmal übertragen werden?

Danke dir im voraus.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige