Clever-Excel-Forum

Normale Version: Makro hängt sich auf
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

Ich habe eine Code geschrieben der gewisse Zellen innerhalb einer Arbeitsmappe verschiebt. Führt man diesen Manuell aus, klappt es. Sobald man aber das Makro automatisch bei einer Zelleneingabe starten will, dann blockiert Excel. Weiss jemand woran das liegt?

Ich bin ziemlicher VBA Anfänger, ich denke der Code ist auch recht umständlich geschrieben worden.

Hier noch der VBA-Code sowie das auslösen des Codes:

Code:
Sub Makro1()
 
   Range("F2:G6").Select
   Selection.Copy
   Sheets("données").Select
     
nb = ThisWorkbook.Sheets("données").Cells(4, Columns.Count).End(xlToLeft).Column
nb = nb + 1
               
ActiveSheet.Cells(3, nb).Select
ActiveSheet.Paste
   
nb = nb + 2
ActiveSheet.Cells(4, nb).Select
 
   Sheets("Tabelle2").Select
   Range("D2:I6").Select
   Selection.Copy
   Range("B2").Select
   ActiveSheet.Paste
   
     
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F5")) Is Nothing Then

Call Makro1

End If
End Sub

Danke für eure Hilfe.
Hallo,

ohne den code genauer angesehen zu haben, versuch es mal so (ungetestet):
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F5")) Is Nothing Then
Application.enableevents = false
Call Makro1
Application.enableevents = true
End If
End Sub
Hallo

ich habe mir das Makro1 einmal angesehen und seine Schreibweise verkürzt, soweit ich es verstanden habe. 
Für Anfaenger die mit Makro Recorder aufzeichnen ist Select nırmal, wir verzichten als Programmierer darauf!

Bei dem 1. Cody Befehl besser die Tabelle aus der kopiert werden soll mit angeben!!  Range("F2:G6").Copy   'besser Tabelle mit angeben !!
Der naechste Befehl führt ins leere, da passiert nix mehr.  Wofür ist der gut??  Wenn überflüssig besser löschen.  ActiveSheet.Cells(4, nb).Select
Steht in meinem Beispiel vor einem Befehl ein  Zeichen wurde er deaktivert. Durch entfernen von ' wird er aktiv.

mfg Gast123 

Code:
Sub Makro1()
'Column besser am Anfang suchen
nb = ThisWorkbook.Sheets("données").Cells(4, Columns.Count).End(xlToLeft).Column
nb = nb + 1
               
  'Copy und Paste -ohne Select- über PasteSpecial
  Range("F2:G6").Copy   'besser Tabelle mit angeben !!
 'Sheets("Tabelle xx").Range("F2:G6").Copy
  Sheets("données").Cells(3, nb).PasteSpecial xlPasteAll
 
nb = nb + 2
ActiveSheet.Cells(4, nb).Select
'wofür ist dieser Select gut, da kommt kein ActiveSheet.Paste !!
 
  Sheets("Tabelle2").Select
  Range("D2:I6").Select
  Selection.Copy
 
  'kürzere Schreibweise ohne Select!!
  Sheets("Tabelle2").Range("D2:I6").Copy
  Range("B2").PasteSpecial xlPasteAll      'kopieren ins gleiche Blatt ??
  'Sheets("Tabelle2").Range("B2").PasteSpecial xlPasteAll     'oder besser so
  Application.CutCopyMode = False
   
End Sub
Danke für eure Hilfe,

Ich habe das Makro etwas vereinfacht, ohne Select alles auf einer Tabelle.

Das Problem mit dem ausführen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F5")) Is Nothing Then
Application.enableevents = false
Call Makro1
Application.enableevents = true
End If
End Sub

 Der Vorgeschlagene Code funktioniert zwar, aber ich habe noch einen weiteren Code der sich nach einer Eingabe ausführen soll, dieser funktioniert jedoch nicht mehr wenn der erste Code ebenfalls angewandt wird.
Das wäre der zweite Code um ein anderes Makro aus zu führen:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 11 Then
Call TimeC1
End If
End Sub


Ist es möglich diese beide in Kombination ausführen zu lassen?
oder ?
Code:
Sub M_akro_001()
   with Sheets("données").currentregion
      activesheet.Range("F2:G6").Copy  .offset(2,.columns.count).resize(1,1)
    end with
    sheets("Tabelle2").Range("D2:I6").Copy  activesheet.Range("F2")
End Sub
Danke für die Hilfe. Es Funktioniert jetzt alles wie es soll.