Duplication d'un calcul dans une colonne

Résolu/Fermé
Philippe - 17 févr. 2009 à 10:56
 Philippe - 19 févr. 2009 à 14:45
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.
A voir également:

4 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 févr. 2009 à 13:54
Bonjour,
Range("D65536").End(xlUp).Column ? remplacer par
Range("D65536").End(xlUp).Row
A+
0
Oui tu dois avoir raison j'avais essayé avec row avant mais avec le même resultat que column.
En fait j'ai plus de 30 lignes et la recopie s'arrête au bout de 22 lignes avec row egalement.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 févr. 2009 à 15:44
Met ta macros dans un poste suivant.
0
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
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 févr. 2009 à 16:16
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.
0
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 .
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 févr. 2009 à 10:03
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+
0
Merci pour tout les conseils
0