Demande aide code Vba

castor30

XLDnaute Occasionnel
Bonjour le forum,
Je sollicite votre aide pour corriger ce code réalisé avec l'enregistreur de macros

VB:
Private Sub CommandButton3_Click()
Dim CocheE As Long
Dim CocheG As Long

' Sélection des adresses mails ColE pour ColAI
    Application.ScreenUpdating = False
    Columns("E:G").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="X"
        [Admail].Copy
        Range("P2").PasteSpecial xlValues
          
' Sélection des adresses mails ColG pour ColAJ
    Columns("E:G").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=3, Criteria1:="X"
        [Admail].Copy
        Range("Q2").PasteSpecial xlValues
    Selection.AutoFilter

'Efface les X dans les 2 colonnes
    [CocheE].ClearContents      ' Qualificateur incorrect
    [CocheG].ClearContents     ' Qualificateur incorrect
    [H1].Select
    Application.ScreenUpdating = True
End Sub

CocheE et CocheG correspondent à deux zones nommées
En vous remerciant
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Bonjour Castor30,

Je ne sais pas si ça répond à ta question mais voici comment j'écrirais ce code:

Private Sub CommandButton3_Click()

Application.ScreenUpdating = False
' Sélection des adresses mails ColE pour ColAI
With Columns("E:G")
.AutoFilter
.AutoFilter Field:=1, Criteria1:="X"
[Admail].Copy
Range("P2").PasteSpecial xlValues
' Sélection des adresses mails ColG pour ColAJ
.AutoFilter
.AutoFilter Field:=3, Criteria1:="X"
[Admail].Copy
Range("Q2").PasteSpecial xlValues
.AutoFilter
End With
'Efface les X dans les 2 colonnes
[CocheE].ClearContents
[CocheG].ClearContents
[H1].Select
Application.ScreenUpdating = True
End Sub


Puisque CocheE et CocheG sont des plages nommées, il est inutile de les redéfinir dans la procédure (d'autant que tu les a définies en Long, d'où les messages d'erreur).

Cordialement.
 

Discussions similaires

Réponses
1
Affichages
1 K