Je rencontre un problème lors de la personnalisation d'une macro. Je viens de faire un enregistrement de macro (avec l'enregistreur), cependant, cela ne rend pas les données "réutilisables".
Code:
Sub voirie()
ActiveCell.FormulaR1C1 = "toto"
Range("T3135").Select
Selection.AutoFill Destination:=Range("T3135:T3748")
Range("T3135:T3748").Select
End Sub
Je souhaite remplir la colonne T2 de mon fichier Excel automatiquement avec le mot toto pour les cellules vides. La macro doit commencer à la première ligne vide de la colonne T jusqu'à la dernière ligne remplie de la feuille. J'aimerais donc, ajouter un .End(xlUp).Row (je pense à cela pour dire d'aller jusqu'à la fin) et aussi remplacer le activecell par (la première ligne vide). Sinon, Excel, ne continue pas à ajouter le mot toto, car les lignes sont après la 3748.
Sub voirie()
Dim c as Range
Set c= range("T1")
If Range("T2")="" Then Set c=c.end(xlDown)
c.Formula = "Toto"
c.AutoFill Destination:=Range(c, Range("T65536").end(xlUp))
end Sub
merci bien, mais j'obtiens une erreur sur la ligne "c.AutoFill Destination:=Range(c, Range("T65536").End(xlUp))", voici le doc en PJ. Je ne vois pas très bien ce qu'il faut modifier
J'ai testé la macro chez moi, cela fonctionne. Je ne peux regarder ton fichier, étant sous excel 2003. Essaie p-e de préciser le nom de la feuille comme ceci :
Code:
Sub voirie()
Dim c as Range
Set c= Feuil1.range("T1")
If Feuil1.Range("T2")="" Then Set c=c.end(xlDown)
c.Formula = "Toto"
c.AutoFill Destination:=Range(c, Feuil1.Range("T65536").end(xlUp))
end Sub
Ta feuil1, s'appelait à sa création Feuil3 : c'est son codename. Remplace tous les Feuil1 du code par feuil3 et sa fonctionne. ou alors par Sheets("Feuil1").
Sub voierie_bis()
Dim plg As Range
'Set plg = Range(Cells(1, "T"), Cells(65536, "T"))
Set plg = Columns(20)
With plg
With .SpecialCells(xlCellTypeBlanks)
.Value = "toto"
End With
End With
End Sub
Merci bien, le petit hic, il m'ajoute bien Toto, mais, il commence de la dernière celulle et remonte pour modifier toutes les données du dessus de la colonne, au lieu de compléter les cellules vides du dessous sans modifier ce qu'il y a au dessus.
Je viens de me rendre compte en regardant la solution proposée par Staple1600, qu'effectivement, j'avais pas compris correctement ta demande : je croyais que tu souhaitais que toutes les cellules déjà remplies de la colonne T prenne la formule "Toto", et non pas les cellules vides sous tes données. Désolé héhé
Concernant ta demande, il me semble que Staple a du coup, à peu près répondu à ta demande, juste l'histoire de 'remplir colonne T jusqu'à la dernière ligne remplie de la feuille' qui est pas prise en compte : tu peux adapter son code comme ceci :
Code:
Sub voierie_bis()
Dim plg As Range
Set plg = Intersect(ActiveSheet.UsedRange, Columns(20))
With plg
With .SpecialCells(xlCellTypeBlanks)
.Value = "toto"
End With
End With
End Sub