Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1508to1512
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

Nach Ausführen des Makros passiert was falsches

Nach Ausführen des Makros passiert was falsches
06.08.2016 11:25:00
Jenny
Hallo,
ich habe unten stehendes Makro,
funktioniert alles so wie es soll, außer etwas ganz kleines.
Wenn ich etwas in die Spalten E oder G einfüge, wird nach dem Ausführen des Makros die komplette Zeile markiert. Ist es möglich, das stattdessen die Zelle markiert wird, in die ich etwas eingefügt habe?
Danke und schönes Wochenende
Jenny
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target  "" Then
On Error GoTo ERREXIT
Application.EnableEvents = False
Select Case Target.Column
Case 5: Call SpalteE(Target)
Case 7: Call SpalteG(Target): Call SpalteE(Target)
End Select
End If
ERREXIT:
Application.EnableEvents = True
End Sub
Sub SpalteG(ByVal Target As Range)
Dim r As Range, c As Range, z&, cc As Range, zf&
Dim gefunden As Boolean
If Target.Offset(, -6)  "" Then
z = Target.Row
gefunden = False
Set cc = Range("A1:A" & z - 1).Find(Target.Offset(, -6).Value, _
Range("A1"), xlValues, xlWhole)
If Not cc Is Nothing Then
zf = cc.Row
Do
Set cc = Range("A1:A" & z - 1).FindNext(cc)
If cc.Offset(, 6) = Target Then
Target.Offset(, -2) = cc.Offset(, 4) '& " " & (cc.Offset(, 4).Address)
gefunden = True
End If
Loop Until cc Is Nothing Or cc.Row = zf Or gefunden
End If
If Not gefunden Then Target.Offset(, -2).Value = "n.v."
End If
End Sub
Sub SpalteE(ByVal Target As Range)
Dim lngR As Long
lngR = Target.Row
Cells(lngR, 2).FormulaR1C1 = Cells(1, 2).FormulaR1C1
Cells(lngR, 3).FormulaR1C1 = Cells(1, 3).FormulaR1C1
Cells(lngR, 6).FormulaR1C1 = Cells(1, 6).FormulaR1C1
Cells(lngR, 8).FormulaR1C1 = Cells(1, 8).FormulaR1C1
Cells(lngR, 9).FormulaR1C1 = Cells(1, 9).FormulaR1C1
Cells(lngR, 10).FormulaR1C1 = Cells(1, 10).FormulaR1C1
Cells(lngR, 11).FormulaR1C1 = Cells(1, 11).FormulaR1C1
Cells(lngR, 12).FormulaR1C1 = Cells(1, 12).FormulaR1C1
Rows(lngR).Copy
Cells(lngR, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nach Ausführen des Makros passiert was falsches
06.08.2016 12:16:53
Nepumuk
Hallo,
teste mal:
Sub SpalteE(ByVal Target As Range)
    
    Dim lngR As Long
    lngR = Target.Row
    Cells(lngR, 2).FormulaR1C1 = Cells(1, 2).FormulaR1C1
    Cells(lngR, 3).FormulaR1C1 = Cells(1, 3).FormulaR1C1
    Cells(lngR, 6).FormulaR1C1 = Cells(1, 6).FormulaR1C1
    Cells(lngR, 8).FormulaR1C1 = Cells(1, 8).FormulaR1C1
    Cells(lngR, 9).FormulaR1C1 = Cells(1, 9).FormulaR1C1
    Cells(lngR, 10).FormulaR1C1 = Cells(1, 10).FormulaR1C1
    Cells(lngR, 11).FormulaR1C1 = Cells(1, 11).FormulaR1C1
    Cells(lngR, 12).FormulaR1C1 = Cells(1, 12).FormulaR1C1
    Rows(lngR).Copy
    Cells(lngR, 1).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Target.Select
End Sub


Gruß
Nepumuk
Anzeige
AW: Nach Ausführen des Makros passiert was falsches
06.08.2016 13:42:46
Jenny
Hallo,
vielen Dank, das funktioniert.
Schönes Wochenende
Jenny
AW: Nach Ausführen des Makros passiert was falsches
06.08.2016 12:18:04
Gerd
Hallo Jenny,
für die G-Spalte ist im Code keine Zeilenmarkierung ersichtlich.
Sub SpalteE(ByVal Target As Range)
Dim lngR As Long, i As Long
lngR = Target.Row
For i = 2 To 12
Select Case i
Case 4, 5, 7
Case Else: Cells(lngR, i).FormulaR1C1 = Cells(1, i).FormulaR1C1
Next
Rows(lngR).Copy
Cells(lngR, 1).PasteSpecial xlPasteValues
Target.Select
Application.CutCopyMode = False
End Sub
Gruß Gerd
AW: Nach Ausführen des Makros passiert was falsches
06.08.2016 13:16:46
Jenny
Hallo Gerd,
du hast recht, wenn ich in G was einfüge wird ja auch automatisch der Teil namens SpalteE ausgeführt im Anschluss.
Gruß
Jenny
Anzeige
AW: Nach Ausführen des Makros passiert was falsches
06.08.2016 13:18:25
Daniel
Hi Jenny
das Markieren der Zeile passiert hier, am Ende des Makros SpalteE:
Rows(lngR).Copy
Cells(lngR, 1).PasteSpecial xlPasteValues
beim Ausführen von PasteSpecial setzt Excel die Markierung auf alle eingefügten Zellen, hier die ganzel Zeile, weil du eine ganze Zeile kopiert hast.
wenn du das verhindern willst, verwende statt dem Copy-PasteSpecial diesen Code:
Cells(lngR, 1).resize(1, 12).Formula = Cells(lngR, 1).resize(1, 12).Value

damit bleibt dann die Markierung auf der urspünglichen Markierung.
wenn du die Zellen, in die die Formeln eingefügt wurden markieren willst, verwende am ende des Makros diesen Code:
Intersect(Rows(lngR), Range("2:3,6:6,8:12")).select

Gruß Daniel
Anzeige
AW: Nach Ausführen des Makros passiert was falsches
06.08.2016 13:46:12
Jenny
Hallo Daniel,
der erste Tipp funktioniert, beim zweiten Tipp wird nach wie vor die einzelne Zelle markiert, in die ich vorher eingefügt habe. Aber da ich es nicht brauche, das alle Zellen markiert werden, in die was eingefügt wurde, brauchen wir da auch nicht weiter nach Fehlern zu suchen.
Gruß und schönes Wochenende
Jenny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige