VBA Excel: Etendre une formule jusqu'à la dernière ligne
Résolu
Alice
-
PhilDk Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
PhilDk Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Vba copier une formule jusqu'à la dernière ligne
- Filldown formula vba - Meilleures réponses
- Tirer formule jusqu'en bas excel - Meilleures réponses
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Excel retour à la ligne dans une formule - Guide
- Formule si et - Guide
- Formule somme excel ligne - Guide
- Comment copier une vidéo youtube - Guide
4 réponses
Bon.
Il nous suffit donc maintenant, de remplacer dans
Profitons en pour supprimer ces .Select et autres Selection inutiles...
Exemple :
Auparavant, cependant, on cherche depuis tout à l'heure la dernière ligne non vide de la colonne C. Or, dans la colonne C, on cherche à remplir de formule... Donc, pour l'instant, la colonne C ne contient rien, si je ne m'abuse... Donc, cela n'a pas de sens de chercher la dernière ligne non vide de la colonne C.
Il nous suffit donc maintenant, de remplacer dans
Destination:=Range("C6:C450"), 450 par la variable DernLigne.
Profitons en pour supprimer ces .Select et autres Selection inutiles...
Exemple :
Dim DernLigne As Long DernLigne = Range("C" & Rows.Count).End(xlUp).Row Range("C6").AutoFill Destination:=Range("C6:C" & DernLigne)
Auparavant, cependant, on cherche depuis tout à l'heure la dernière ligne non vide de la colonne C. Or, dans la colonne C, on cherche à remplir de formule... Donc, pour l'instant, la colonne C ne contient rien, si je ne m'abuse... Donc, cela n'a pas de sens de chercher la dernière ligne non vide de la colonne C.
Sub Extension_formule()
Dim DernLigne As Long
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
Range("C6").AutoFill Destination:=Range("C6:C" & DernLigne)
End Sub
Il en est ressorti un message d'erreur, à savoir: "la méthode Autofill de la classe range a échoué".
Par rapport à votre remarque qui suit, j'ai pensé qu'en répondant 450 à votre question de connaître le nombre s'affichant dans la boîte de dialogue en entrant le code suggéré en début de forum, à savoir:
Sub Test()
Dim DernLigne As Long
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
MsgBox DernLigne
End Sub
vous en déduiriez aisément que la fameuse colonne C se trouve dans un tableau de 450 lignes. C'est d'ailleurs toute l'utilité d'étendre une formule...
En fait, si vous souhaitez étendre votre formule de la ligne 6 à la ligne 450, c'est à priori que votre colonne C ne contient rien, à la base.
Ou alors vous avez des données (ou formules) que vous souhaitez remplacer.
Dans le premier cas (colonne C vide), il faut calculer la dernière ligne en fonction d'une autre colonne. Par exemple, la colonne B elle, peut être remplie.
Dans ce cas, le code devrait être celui-ci :
Dans le second cas, si votre colonne C est déjà remplie, le code donné précédemment est censé fonctionner.
Sauf si quelque chose l'en empêche...
Mais là, il s'agit d'une particularité de votre classeur que nous ne pouvons connaitre sans le voir...
J'ai fait des tests, et arrive à reproduire l'erreur "la méthode Autofill de la classe range a échoué", lorsque la colonne C ne contient qu'une formule en C6 et rien d'autre...
Retente avec le calcul de la dernière ligne d'une autre colonne et, si cela ne fonctionne toujours pas, fait nous passer un classeur exemple grâce à cjoint.com.