• Initiateur de la discussion Initiateur de la discussion Tikale
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tikale

XLDnaute Junior
Bonsoir à tous,

j'ai une macro qui bug, je ne vois pas du tout pourquoi.

Mon "Selection.AutoFill Destination:=Range("A2:A" & nblignes & ""), Type:=xlFillDefault" fonctionne bien quand je fait fonctionner la macro ligne par ligne, mais mon Selection.AutoFill Destination:=Range("A2:AI" & nblignes & ""), Type:=xlFillDefault ne fonctionne pas.

Pourtant, quand je remplace Range("A2:AI" & nblignes & "") par Range("A2:AI387"), cela fonctionne parfaitement (il y a 387 lignes dans mon fichier initial).

Quelqu'un sait d'où cela peut venir svp ? J'imagine que c'est une bétise au niveau de la syntaxe mais j'ai essayé pas mal de choses, rien ne marche.

Par avance, merci !

Le code de la macro :

Code:
Sub testage()
'
Dim MaxAuthorized As Integer
Dim ReplaceValue As Integer
Dim k As Integer
Dim nblignes As Integer
Dim nbcolones As Integer

ReplaceValue = -43
MaxAuthorized = 6
nbcolones = Range("A1", Range("A1").End(xlToRight)).Columns.Count
nblignes = Range("A1", Range("A1").End(xlDown)).Rows.Count

Sheets.Add After:=Sheets(Sheets.Count)
Range("A2").Select
ActiveCell.FormulaR1C1 = _
        "=IF(ISNUMBER('31407-A01'!RC[0]),'31407-A01'!RC[0]," & ReplaceValue & ")"
Selection.AutoFill Destination:=Range("A2:A" & nblignes & ""), Type:=xlFillDefault
Range("A2:A387").Select
Selection.AutoFill Destination:=Range("A2:AI" & nblignes & ""), Type:=xlFillDefault
Range("A1").Select
ActiveCell.FormulaR1C1 = "='31407-A01'!RC[0]"
Selection.AutoFill Destination:=Range("A1:AH1"), Type:=xlFillDefault
Range("A1").End(xlToRight).Offset(1, 1).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-33]:RC[-1]," & ReplaceValue & ")"
Selection.AutoFill Destination:=Range("AI2:AI" & nblignes & ""), Type:=xlFillDefault
'
End Sub
 
Re : VBA : Range qui bug

Merci pour la réponse Gelinotte.

Malheureusement, je viens d'essayer avec :

Code:
 Selection.AutoFill Destination:=Range("A2:A" & nblignes), Type:=xlFillDefault
Range("A2:A387").Select
Selection.AutoFill Destination:=Range("A2:AI" & nblignes), Type:=xlFillDefault

La première ligne passe, mais la deuxième avec le AI ne passe pas 🙁

D'ailleurs ce AI je vais devoir le changer par la suite car une fois le problème des lignes réglé, je vais m'occuper des colonnes et AI ne sera plus fixé ce sera aussi une variable.
 
Re : VBA : Range qui bug

Bonsoir.
Il n'est pas nécessaire d'utiliser AutoFill en VBA: Vous pouvez affecter en une fois une même formule sur toute une plage rectangulaire.
VB:
Range("A2:AI" & NbLignes).FormulaR1C1 = _
        "=IF(ISNUMBER('31407-A01'!RC),'31407-A01'!RC," & ReplaceValue & ")"
Cordialement.
 
Dernière édition:
Re : VBA : Range qui bug

Merci beaucoup, cela fonctionne parfaitement.
Toutefois, je trouve bizarre que Range("A2:AI" & NbLignes) fonctionne avec .FormulaR1C1 mais pas dans mon Selection.AutoFill.


J'ai essayé d'intégrer désormais les colonnes variables dans mon Range, mais là c'est une belle galère car je dépasse les colonnes de A à Z. J'ai tenté quelque chose comme ça :

Code:
 n = Int(nbcolones / 26)
Range("A2:" & n * Chr(65) & Chr(nbcolones) & nblignes).FormulaR1C1 = _
        "=IF(ISNUMBER('31407-A01'!RC),'31407-A01'!RC," & ReplaceValue & ")"

L'idée étant que n regarde le nombre de fois que que le nb de colonne dépasse l'alphabet, pour ensuite mettre dans mon range Chr(65) n fois et un Chr(nbcolones).

Mais cela ne fonctionne pas. J'ai essayé sans le n , ça ne marche pas non plus. Une idée d'où ça pourrait venir ? Ou s'il existe ici aussi un moyen plus propre pour gérer les colonnes ?

Par avance, merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
541
Réponses
2
Affichages
722
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
643
  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
664
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
387
Retour