Duplication d'un calcul dans une colonne
Résolu
Philippe
-
Philippe -
Philippe -
Bonjour,
Je ne connais pas grand chose au vba, mais j'aimerai utiliser une macro dans excel pour repeter le meme calcul sur toute la colonne D2. Le nombre de ligne est variable il faut donc que le calcul se fasse jusqu'a la derniere ligne de la colonne D.
Voila le debut de ma macro:
J'insère une colonne en D et prends uniquement le début du nom de ma colonne C jusqu'au caractere / +2.
Aprés avoir mise ma formule je veux l'etendre jusqu'au dernier produit se trouvant en colonne C.
' formatage de la colonne des produits'
'formule'
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Range("D2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""/"",RC[-1])+2)"
'duplication du calcul'
Range("D2:D2").AutoFill Destination:=Range("D2:D2" & Range("D65536").End(xlUp).Column)
Le problème c'est que la formule ne va pas jusqu'au fond ?
Merci pour votre aide.
Je ne connais pas grand chose au vba, mais j'aimerai utiliser une macro dans excel pour repeter le meme calcul sur toute la colonne D2. Le nombre de ligne est variable il faut donc que le calcul se fasse jusqu'a la derniere ligne de la colonne D.
Voila le debut de ma macro:
J'insère une colonne en D et prends uniquement le début du nom de ma colonne C jusqu'au caractere / +2.
Aprés avoir mise ma formule je veux l'etendre jusqu'au dernier produit se trouvant en colonne C.
' formatage de la colonne des produits'
'formule'
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Range("D2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""/"",RC[-1])+2)"
'duplication du calcul'
Range("D2:D2").AutoFill Destination:=Range("D2:D2" & Range("D65536").End(xlUp).Column)
Le problème c'est que la formule ne va pas jusqu'au fond ?
Merci pour votre aide.
Configuration: Windows XP Internet Explorer 7.0
4 réponses
-
Bonjour,
Range("D65536").End(xlUp).Column ? remplacer par
Range("D65536").End(xlUp).Row
A+ -
-
Voici, merci
Sub miseenforme()
'
' miseenforme
' Macro enregistrée le 11/02/2009 par Philippe
'
'
MsgBox "Veuillez ouvrir le fichier .", vbInformation, "INFORMATION IMPORTANTE"
If Not Application.Dialogs(xlDialogOpen).Show Then
MsgBox "Fin prématurée de la macro", vbInformation, "INFORMATION IMPORTANTE"
Exit Sub
End If
Dim Wbkenseigne As Workbook
Set Wbkenseigne = ActiveWorkbook
' formatage de la colonne des produits'
'formule'
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Range("D2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""/"",RC[-1])+2)"
'duplication du calcul'
Range("D2:D2").AutoFill Destination:=Range("D2:D2" & Range("D65536").End(xlUp).Row)
'titre'
End Sub
-
-
Bon, ça me semble évident que ça marche pas, tu dis que ça va jusque 22 ? ça aussi ça m'étonne.
Tu crée une nouvelle colonne elle est donc VIDE
Tu met une formule en D2, mais c'est la dernière ligne renseignée sur cette colonne.
Tu devrais prendre une autre colonne pour connaître la dernière ligne renseignée.
-
Merci pour tout, cela ma beaucoup aidé.
Il fallait remplacer
Range("D2:D2").AutoFill Destination:=Range("D2:D2" & Range("D65536").End(xlUp).Row)
Par
Range("D2:D2").AutoFill Destination:=Range("D2:D" & Range("C65536").End(xlUp).Row)
Comme vous me l'avez indiqué j'ai bien pris une autre colonne, ici C à la place de D et le fait que cela ne s'arretait pas
au bon endroit il fallait mettre D2:D à la place de D2:D2.
Merci encore pour votre aide .
-
-
Hummm.. Ca ne m'a pas fait tilit (D2:D2)
Tu peu simplifier ta macros avec...Columns("D:D").Insert Shift:=xlToRight Range("D2").FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""/"",RC[-1])+2)" Range("D2").Copy Range("D3:D" & Range("C65536").End(xlUp).Row).Select ActiveSheet.Paste
A+