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.
A voir également:
- Duplication d'un calcul dans une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Duplication écran - Guide
- Colonne word - Guide
- Calcul moyenne excel - Guide
4 réponses
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
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.
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 .
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 .
En fait j'ai plus de 30 lignes et la recopie s'arrête au bout de 22 lignes avec row egalement.