Bonjour,
Dans mon tableau, j'ai supprimé les lignes de 72 à 76, comment modifier votre code pour que la macro s'arrete à la ligne 68.
Merci
Version imprimable
Bonjour,
Dans mon tableau, j'ai supprimé les lignes de 72 à 76, comment modifier votre code pour que la macro s'arrete à la ligne 68.
Merci
Si je comprends bien, ma plage de cellule représente 9 répétitions (For i = 0 To 8), donc ma logique est de modifier à 8 répétitions. Je remplace 8 par 7, çà ne fonctionne pas :(
Au secours !
J'ai modifié comme ceci pour que çà s'arrête à la ligne 68 au lieu de 76 :
Et comme ça ne fonctionne pas, j'ai bidouillé comme cela et çà fonctionne.Code:
1
2
3
4
5 Dim Base As Range, i As Integer Set Base = Range("B8:B12,G8:G12,M8:M12,R8:R12") For i = 0 To 7 Base.Offset(i * 7, 0).ClearContents Next i
Code:
1
2
3
4 Range("B8:B12,B16:B20,B24:B28,B32:B36,B40:B44,B48:B52,B56:B60,B64:B68").ClearContents Range("G8: G12 , G16: G20 , G24: G28 , G32: G36 , G40: G44 , G48: G52 , G56: G60 , G64: G68").ClearContents Range("M8: M12 , M16: M20 , M24: M28 , M32: M36 , M40: M44 , M48: M52 , M56: M60 , M64: M68").ClearContents Range("R8: R12 , R16: R20 , R24: R28 , R32: R36 , R40: R44 , R48: R52 , R56: R60 , R64: R68").ClearContents
A ta place, j'aurais pris 5 min pour aller regarder dans l'aide VBA (accessible en un clic sur F1) ce que représente la propriété Offset et la structure For To.
Ca t'éviterais de faire n'importe quoi.
Mais je conçois que cette méthode puisse ne pas convenir à tout le monde et que tripoter n'importe quoi dans l'espoir d'obtenir le résultat souhaité, ça puisse être aussi une méthode.
Je commence à devenir désabusée, il faudrait que je fasse un break. :calim2:
Je te remercie, j'ai bien été dans l'aide en ligne :f1:, mais n'arrivant pas à trouver la solution (étant novice), je me contente d'opter pour quelque chose qui m'apporte le résultat cherché.
Mais, j'aimerais bien avoir ton explication :pc:
Merci
Bonjour,
Je crois avoir trouvé, j'ai modifié uniquement : For i = 0 To 7 (remplacé 8 par 7) et ça fonctionne.
Est-ce que c'est cela.
Merci
Si ça fonctionne, alors oui :)Citation:
Je crois avoir trouvé, j'ai modifié uniquement : For i = 0 To 7 (remplacé 8 par 7) et ça fonctionne.
Est-ce que c'est cela.
Il semble que tu ne maîtrise pas du tout les bases, Menhir t'avais conseillé des tutos je te conseille vivement de les lire, tu apprendras plus vite qu'en bidouillant.
De plus pour voir ce que fais un code que tu ne comprends pas je te conseille de le lancer en mode pas à pas (avec la touche F8) pour bien l'effet de chaque ligne de code.
Bonjour,
j'arrive peut-être après la bataille mais on aurais pu utiliser union tiré de l'aide en ligne par :f1:
Citation:
Utilisez Union(plage1, plage2, ...) pour renvoyer des plages à plusieurs zones, c'est-à-dire, des plages composées d'au moins deux blocs de cellules contiguës. L'exemple suivant montre comment créer un objet correspondant à l'union des plages A1:B2 et C3: D4, puis sélectionner la plage définie.
Visual Basic pour Applications
Code:
1
2
3
4
5
6 Dim r1 As Range, r2 As Range, myMultiAreaRange As Range Worksheets("sheet1").Activate Set r1 = Range("A1:B2") Set r2 = Range("C3:D4") Set myMultiAreaRange = Union(r1, r2) myMultiAreaRange.Select