Microsoft 365 Code Macro erreur d’exécution 1004, compilation,syntaxe

laplayast

XLDnaute Occasionnel
Bonjour,
erreur sur code macro; merci pour corriger si possible.

Sub Macro3()
' Macro3 Macro
Range( "C12:AM14,C16:AM18,C20:AM22,C24:AM26,C28:AM30,C32:AM34,C36:AM38,C40:AM42,C44:AM46,C48:AM50,C52:AM54,C56:AM58,C60:AM62,A64:AM66,A68:AM70,A72:AM74,A76:AM78,A80:AM82,A84:AM86,A88:AM90,A92:AM94,A96:AM98,A100:AM102,A104:AM106,A108:AM110,A112:AM114,A116:AM118,A120:AM122,A124:AM126,A128:AM130,A132:AM134,A136:AM138,A140:AM142,A144:AM146,A148:AM150,A152:AM154,A156:AM158,A160:AM162,A164:AM166").Select
Range("A164").Activate
End Sub
 

Gégé-45550

XLDnaute Accro
Bonjour,
erreur sur code macro; merci pour corriger si possible.

Sub Macro3()
' Macro3 Macro
Range( "C12:AM14,C16:AM18,C20:AM22,C24:AM26,C28:AM30,C32:AM34,C36:AM38,C40:AM42,C44:AM46,C48:AM50,C52:AM54,C56:AM58,C60:AM62,A64:AM66,A68:AM70,A72:AM74,A76:AM78,A80:AM82,A84:AM86,A88:AM90,A92:AM94,A96:AM98,A100:AM102,A104:AM106,A108:AM110,A112:AM114,A116:AM118,A120:AM122,A124:AM126,A128:AM130,A132:AM134,A136:AM138,A140:AM142,A144:AM146,A148:AM150,A152:AM154,A156:AM158,A160:AM162,A164:AM166").Select
Range("A164").Activate
End Sub
Bonsoir,
1. Merci d'utiliser le menu '</>' pour insérer du code, ça permet de le rendre plus lisible.
2. À quoi sert l'énorme .Select pour finalement activer la cellule A164 qui, elle devrait bénéficier d'un .Select ?
Cordialement,
 

laplayast

XLDnaute Occasionnel
bonjour,
n'étant pas un spécialiste de VB, j'ai enregistrer une macro qui me donne ce résultat(post1). Je veux sélectionner une ligne sur4 et cela jusqu’à la ligne 2000. Comment faire. j'ai ce code également:

Sub SelectionToutesLesQuatreLignes()
Dim ligne As Integer
For ligne = 1 To 2000 Step 4
Rows(ligne).Select
Next ligne
End Sub

merci pour l'aide
 

Phil69970

XLDnaute Barbatruc
Re

La question est qu'est ce que tu fais après avoir sélectionné 1 ligne sur 4 ?
==> juste sélectionner 1 ligne sur 4 si rien après et bien cela sert toujours à rien ..... 🤔
Donc explique nous ce que tu veux faire exactement.

C'est un peu pour cela que l'on demande un fichier avec des explications !!!
 

Jacky67

XLDnaute Barbatruc
Bonjour,
erreur sur code macro; merci pour corriger si possible.

Sub Macro3()
' Macro3 Macro
Range( "C12:AM14,C16:AM18,C20:AM22,C24:AM26,C28:AM30,C32:AM34,C36:AM38,C40:AM42,C44:AM46,C48:AM50,C52:AM54,C56:AM58,C60:AM62,A64:AM66,A68:AM70,A72:AM74,A76:AM78,A80:AM82,A84:AM86,A88:AM90,A92:AM94,A96:AM98,A100:AM102,A104:AM106,A108:AM110,A112:AM114,A116:AM118,A120:AM122,A124:AM126,A128:AM130,A132:AM134,A136:AM138,A140:AM142,A144:AM146,A148:AM150,A152:AM154,A156:AM158,A160:AM162,A164:AM166").Select
Range("A164").Activate
End Sub
Bonjour à tous,
Sauf erreur, il semblerait que la limite d'un range est de 255 caractères
Or la sélection en comporte 384
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Selon l'aphorisme "diviser pour mieux régner" :
VB:
Sub Macro3()
Union(Range("C12:AM14,C16:AM18,C20:AM22,C24:AM26,C28:AM30,C32:AM34,C36:AM38,C40:AM42,C44:AM46,C48:AM50,C52:AM54,C56:AM58,C60:AM62"), _
Range("A64:AM66,A68:AM70,A72:AM74,A76:AM78,A80:AM82,A84:AM86,A88:AM90,A92:AM94,A96:AM98,A100:AM102,A104:AM106,A108:AM110"), _
Range("A112:AM114,A116:AM118,A120:AM122,A124:AM126,A128:AM130,A132:AM134,A136:AM138,A140:AM142,A144:AM146,A148:AM150"), _
Range("A152:AM154,A156:AM158,A160:AM162,A164:AM166")).Select
End Sub
 

laplayast

XLDnaute Occasionnel
Re

La question est qu'est ce que tu fais après avoir sélectionné 1 ligne sur 4 ?
==> juste sélectionner 1 ligne sur 4 si rien après et bien cela sert toujours à rien ..... 🤔
Donc explique nous ce que tu veux faire exactement.

C'est un peu pour cela que l'on demande un fichier avec des explications !!!
Bonjour,
L’intérêt c’est de pourvoir rendre ces lignes en écriture, et le reste est verrouillé. Donc protéger certaines cellules. Un code VBA (macro) me faciliterait cette sélection. C’est ce j’imagine.
Merci pour une aide.
 

Jacky67

XLDnaute Barbatruc
Bonjour,
L’intérêt c’est de pourvoir rendre ces lignes en écriture, et le reste est verrouillé. Donc protéger certaines cellules. Un code VBA (macro) me faciliterait cette sélection. C’est ce j’imagine.
Merci pour une aide.
Bonjour,
Pour verrouiller ou déverrouiller(Locked), il est inutile de sélectionner.
Avec (l'emprunt 🤭 )de la proposition de mapomme (que je salue).
Le code ci-dessous autorise l'écriture dans la feuille sauf dans les différentes plages verrouillées.
Remplacer "Locked = False" par "Locked = True" et inversement, si cela doit être le contraire.
VB:
Sub Autorise()
    With Feuil1 'codename de la feuille en question.(A adapter)
        .Unprotect ' Déprotège la feuille
        .Cells.Locked = False 'Déverrouille toutes les cellules de la feuille
        Union(.Range("C12:AM14,C16:AM18,C20:AM22,C24:AM26,C28:AM30,C32:AM34,C36:AM38,C40:AM42,C44:AM46,C48:AM50,C52:AM54,C56:AM58,C60:AM62"), _
              .Range("A64:AM66,A68:AM70,A72:AM74,A76:AM78,A80:AM82,A84:AM86,A88:AM90,A92:AM94,A96:AM98,A100:AM102,A104:AM106,A108:AM110"), _
              .Range("A112:AM114,A116:AM118,A120:AM122,A124:AM126,A128:AM130,A132:AM134,A136:AM138,A140:AM142,A144:AM146,A148:AM150"), _
              .Range("A152:AM154,A156:AM158,A160:AM162,A164:AM166")).Locked = True 'Verrouille les cellules de ces plages
        .Protect ' protège la feuille sans mot de passe
    End With
End Sub
Il n'y a pas de vérification sur l'exactitude des plages dans cet exemple.
 
Dernière édition:

Statistiques des forums

Discussions
314 626
Messages
2 111 291
Membres
111 092
dernier inscrit
ThomasU3