Duplication d'un calcul dans une colonne

Résolu
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.
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Range("D65536").End(xlUp).Column ? remplacer par
    Range("D65536").End(xlUp).Row
    A+
    0
    1. Philippe
       
      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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Met ta macros dans un poste suivant.
    0
    1. Philippe
       
      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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. Philippe
       
      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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. Philippe
       
      Merci pour tout les conseils
      0