la methode range de l'objet _global a echoué

pnlop

XLDnaute Occasionnel
Bonjour le forum,
Voici ma macro, trouvée à partir de l'enregistreur auto de macro. Initialement elle fonctionne, mais dès que je modifie la ligne verte, car B12 est variable et dépend de "DernLigne", cela provoque l'erreur 1004 La méthode range de l'objet _global a échoué...
Pourriez-vous m'indiquer quoi faire pour que cela fonctionne?

Merci pour votre aide!

Code:
Sub copier_voka()
'
' copier_voka Macro
' Copier données de la voka vers modèle pdf
'
' Touche de raccourci du clavier: Ctrl+Maj+Y
'
With Worksheets("Tabelle1")
    
    Dim DernLigne As Variant
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
    
    Cpt = Application.CountA(Range("A:A"))
    
    Worksheets("+ total").Cells(7, 1).EntireRow.Resize(rowsize:=Cpt).Insert Shift:=xlDown
    
    [COLOR="#00FF00"]Range("B9:B&DernLigne").Select[/COLOR]
    Selection.Copy
    Sheets("+ total").Select
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("C9:C&DernLigne").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Range("C6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End With
    
    
    
    
End Sub
 

pnlop

XLDnaute Occasionnel
Re : la methode range de l'objet _global a echoué

Bonjour le forum,
Je suis arrivée au bout de ma macro et tout fonctionne… sauf un évènement. Enfin, chose étrange que je ne m’explique pas (je compte un peu sur vous… !) si je fais le pas à pas détaillé, pas de problème. Mais dès que je lance la macro, là, elle ne me copie pas ce qui doit l’être au niveau de la colonne D vers l’autre feuille en D6… !?!
(le problème se situe entre la ligne 50 et 56 du code ci-dessous)

Code:
Sub copier_voka()
'
' copier_voka Macro
' Copier données de la voka vers modèle pdf
'
' Touche de raccourci du clavier: Ctrl+Maj+Y
'

    Dim DernLigne As Variant
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
    Dim Cpt As Variant
    Cpt = Application.CountA(Range("A:A"))
    
    Worksheets("Tabelle1").Columns("A:AA").Select
    Selection.EntireColumn.Hidden = False

With Worksheets("Tabelle1")
    
     
    Worksheets("+ total").Cells(7, 1).EntireRow.Resize(rowsize:=Cpt).Insert Shift:=xlDown
    
    Range("D9:D" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("D9:D" & DernLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Range("F9:F" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F9:F" & DernLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Range("B9:B" & DernLigne).Select
    Selection.Copy
    Sheets("+ total").Select
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("C9:C" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Range("C6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D9:D" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Range("D6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("E9:E" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Worksheets("+ total").Range("E6").Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("F9:F" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Range("F6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("J9:J" & DernLigne).Select
    Selection.Copy
    Sheets("+ total").Select
    Range("G6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle1").Select
    Range("M9:M" & DernLigne).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("+ total").Select
    Range("H6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End With
    

With Worksheets("+ total")

    Dim DerLi As Variant
    DerLi = Range("E" & Rows.Count).End(xlUp).Row
    
    Range("D6:D" & DerLi).Select
    Selection.Copy
    Range("D6:D" & DerLi).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Range("E6:F" & DerLi).Select
    With Selection.Font
        .Name = "Arial"
        .Size = 9
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    
    Range("G6:G" & DerLi).Select
    Selection.Font.Bold = False
    Selection.Font.Bold = True
    Range("H6:H" & DerLi).Select
    Selection.Font.Bold = True
    With Selection.Font
        .Color = -65536
        .TintAndShade = 0
    End With
    
End With

Worksheets("Tabelle1").Activate

    Worksheets("Tabelle1").Columns("D:D").Select
    Selection.EntireColumn.Hidden = True
    Worksheets("Tabelle1").Columns("F:F").Select
    Selection.EntireColumn.Hidden = True
    Worksheets("Tabelle1").Columns("N:P").Select
    Selection.EntireColumn.Hidden = True
    


End Sub

Merci pour votre aide!
 

Dranreb

XLDnaute Barbatruc
Re : la methode range de l'objet _global a echoué

Bonjour.

En fait si l'enresistreur de macro fait tout par des Activate, Select et utilise Selection, c'est seulement par fidélité au actions telle qu'elle sont demandées. Pour qu'elle soient juste effectuées comme on le veut on peut en général tous les éviter, quitte à passer, pour éviter des répétitions, par des variables objets de travail convenablement typées plutôt que par Selection.
 

Discussions similaires

Réponses
2
Affichages
80

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT