Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1552to1556
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

Function wird nur Teilweise ausgeführt

Function wird nur Teilweise ausgeführt
02.05.2017 17:32:34
Helmut
Guten Abend VBA'ler
Warum kann ich folgenden Code nur mit einem Command Button ausführen, aber nicht über eine Funktion? (Funktion dadurch, weil das Makro mit einer "wenn Formel" ausgelöst wird!)
  • Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 12)).copy ' kopiert von "B" bis "L"
    Sheets("Mängelliste").Cells(Sheets("Mängelliste").Cells(Rows.Count, 1).End(xlUp).Row + 1, 17).PasteSpecial xlPasteValues
    Application.CutCopyMode = False

  • 15
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 17:35:14
    Nepumuk
    Hallo,
    du kannst über eine Formel keine andere Zelle ändern.
    Gruß
    Nepumuk
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 17:37:54
    Helmut
    Hallo Nepumuk
    Danke für die rasche Antwort.
    Also ist mein Vorhaben nur mit einem Button zu lösen?
    LG Helmut
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 17:43:05
    Nepumuk
    Hallo,
    du könntest auch auf die Eingabe eines Wertes reagieren.
    Gruß
    Nepumuk
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 17:49:48
    Helmut
    Hallo Nepumuk
    Also ich habe in einer Zelle eine Datenüberprüfung. Wenn der Wert „Maler“ ist, dann sollte dieses Makro ausgeführt werden. Dazu habe ich in einer Hilfsspalte eine Wenn Formel hinterlegt. Somit mache ich ja schon, was du mir soeben vorgeschlagen hast.
    LG Helmut
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 17:59:18
    Nepumuk
    Hallo,
    nein, du benötigst eine Event-Prozedur.
    Rechtsklick auf den Tabellenreiter - Code anzeigen. In das sich öffnende Modul folgenden Code einfügen:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$A$1" Then 'Hier die Zelladresse anpassen !!!!!!!!!!!!!!!!
            If Target.Value = "Maler" Then
                Application.EnableEvents = False
                Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 12)).Copy
                With Worksheets("Mängelliste")
                    .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 17).PasteSpecial xlPasteValues
                End With
                With Application
                    .CutCopyMode = False
                    .EnableEvents = True
                End With
            End If
        End If
    End Sub

    Noch die Adresse anpassen in der sich das Dropdown befindet fertig.
    Gruß
    Nepumuk
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 19:09:04
    Helmut
    Hallo Nepumuk
    Erstmals vielen Dank für den Code. Jetzt habe ich nur noch das Problem, dass ich im Arbeitsblatt ca. 100 Zellen untereinander in der Spalte "A" habe und jeweils eine Datenüberprüfung vorhanden ist.
    Gibt es dafür auch eine Lösung? Ich möchte mich jetzt schon recht herzlich bei dir bedanken.
    Bin dann mal für 1 Stunde im Fitnessraum.
    LG Helmut
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 19:22:08
    Nepumuk
    Hallo,
    verrätst du noch von welcher Zeile bis welcher Zeile (oder kann sich die letzte Zeile auch ändern)?
    Und ist es immer das selbe Wort? Und ist es immer der selbe Bereich der kopiert wird?
    Ich will ja nicht x-mal nacharbeiten nur weil's wegen fehlender Informationen noch nicht passt.
    Gruß
    Nepumuk
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 19:55:02
    Helmut
    also, es beginnt in Zeile 9 und endet in Zeile 300
    was wäre leicht wenn sich die Zeile ändern würde? Neugierig bin
    die Wörter können variieren: "Maler, Schlosser; Tischler..." (eventuell Listbox?)
    der Bereich der kopiert wird, ist immer der selbe.
    Danke für deine Hilfe
    LG Helmut
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 20:05:29
    Helmut
    also, es beginnt in Zeile 9 und endet in Zeile 300
    was wäre leicht wenn sich die Zeile ändern würde? Neugierig bin
    die Wörter können variieren: "Maler, Schlosser; Tischler..." (eventuell Listbox?)
    der Bereich der kopiert wird, ist immer der selbe.
    Danke für deine Hilfe
    LG Helmut
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 20:08:31
    Nepumuk
    Hallo,
    und was soll bei Schlosser oder Tischler passieren?
    Gruß
    Nepumuk
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 20:16:58
    Helmut
    puh, jetzt wird es eine lange Geschichte...
    der Code würde auch funktionieren, wenn irgendetwas in der Zelle steht, oder? Nämlich so:
    If Target.Value = "" Then
    Sprich: die Zelle ist leer, bis ich eine Datenüberprüfung beginne. danach steht „Maler, Schlosser, Tischler…“ In der Zelle und der Code wird ausgeführt.
    Liege ich da richtig?
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 20:36:58
    Nepumuk
    Hallo,
    nein, der erste Code reagiert nur auf Maler.
    Teste mal:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim objRange As Range, objCell As Range
        Set objRange = Intersect(Target, Columns(1))
        If Not objRange Is Nothing Then
            Application.EnableEvents = False
            For Each objCell In objRange
                If Not IsEmpty(objCell.Value) Then
                    Range(Cells(objCell.Row, 2), Cells(objCell.Row, 12)).Copy
                    With Worksheets("Mängelliste")
                        Call .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 17) _
                            .PasteSpecial(Paste:=xlPasteValues)
                    End With
                End If
            Next
            With Application
                .CutCopyMode = False
                .EnableEvents = True
            End With
            Set objRange = Nothing
        End If
    End Sub

    Gruß
    Nepumuk
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 20:59:36
    Helmut
    Hallo Nepumuk
    Also das pfeift!!! Auf Deutsch: es funktioniert!
    Damit ich mehr Verständnis für VBA bekomme, könntest du mir schrittweise den Code erklären?
    Dann gebe ich schon Ruhe.
    LG Helmut
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 21:22:13
    Nepumuk
    Hallo,
    schau mal:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim objRange As Range, objCell As Range
        'Übergib die Schnittmenge der geänderten Zelle(n) und der Spalte A an die Variable objRange
        Set objRange = Intersect(Target, Columns(1))
        'Abfrage ob eine Zelle in der Spalte A geändert wurde
        If Not objRange Is Nothing Then
            'Alle automatischen Events von Excel ausschalten
            Application.EnableEvents = False
            'Schleife über alle geänderten Zellen in Spalte A
            For Each objCell In objRange
                'Wenn die geänderte Zelle nicht leer ist
                If Not IsEmpty(objCell.Value) Then
                    'Kpoiere die Zellen der Spalte B bis L in der geänderten Zeile
                    Range(Cells(objCell.Row, 2), Cells(objCell.Row, 12)).Copy
                    With Worksheets("Mängelliste")
                        'Füge die kopierten Zellen im Tabellenblatt Mängelliste in Spalte Q ein
                        Call .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 17) _
                            .PasteSpecial(Paste:=xlPasteValues)
                    End With
                End If
            Next
            With Application
                'Zwischenablage leeren
                .CutCopyMode = False
                'Events wieder einschalten
                .EnableEvents = True
            End With
            'Objektvariable zurücksetzen
            Set objRange = Nothing
        End If
    End Sub

    Gruß
    Nepumuk
    Anzeige
    AW: Function wird nur Teilweise ausgeführt
    02.05.2017 21:33:45
    Helmut
    Guten Abend Nepumuk
    Hiermit möchte ich mich ganz herzlich bei dir für deine Mühe und Geduld bedanken. Jetzt bin auch ich um eine Erfahrung reicher.
    Danke, Helmut

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige