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
 

Dranreb

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

Bonjour.

Réfléchissez un peu … Vous avez pourtant bien utilisé ailleurs : "A" & Rows.Count
Croyez vous qu'à la place il aurait pu évaluer "A&Rows.Count" ?
 

pnlop

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

Moui... je crois que je comprends. Merci!!!
 

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!
 

pnlop

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

Laissez-tomber! j'ai trouvé!
Il manquait la sélection de la feuille 1!!!
Discussion résolue!
Merci à tous quand même!
 

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.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas