Coiper des formules si valeur présente dans colonne B VBA

Résolu
mamined Messages postés 37 Statut Membre -  
 mamined -
Bonjour le forum,

j'ai un document Excel dans lequel j'ai des données dans les colonnes de "A à N". En revanche, le nombre de ligne varie selon les jours que j'importe les données.

Dans les colonnes de "O à AJ" en ligne 1 j'ai des formules. Je souhaite pouvoir les tirer automatiquement vers le bas, mais uniquement jusqu'à la dernière ligne, pour laquelle j'ai une valeur dans la colonne "B".

Mon problème est que si je les tire tout simplement vers le bas, cela va jusqu'au bas de la feuille et ce n'est pas ce qui est souhaitlé.

Par avance merci pour votre aide

mamined

2 réponses

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Essaie avec cette macro
    Sub CopierFormules()
    Dim DerLigB As Long
    With Worksheets("Feuil1") 'Nom de feuille à adapter
    DerLigB = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("O1").Resize(, 22).AutoFill Destination:=.Range("O1:AJ" & DerLigB), Type:=xlFillDefault
    End With
    End Sub

    A+
    0
    1. mamined
       
      Hello Gyrus,

      merci infiniment. Le code fonctionne très bien pour ma première feuille. En revanche, à présent, si je veux répéter l'opération sur la feuille suivante, j'ai unmessage d'erreur pour la seconde feuille qui s'appelle "Données1".

      Si je mets ton code juste pour 1 seule des deux feuilles c'est parfait ça fonctionne à merveille :-)

      Estce que je fais quelque chose de faux?

      Par avance merci

      Mamined


      Sheets("Données 2").Select

      Dim DerLigB As Long
      With Worksheets("Données 2") 'Nom de feuille à adapter
      DerLigB = .Range("B" & Rows.Count).End(xlUp).Row
      .Range("O1").Resize(, 22).AutoFill Destination:=.Range("O1:AJ" & DerLigB), Type:=xlFillDefault
      End With



      Sheets("Données 1").Select

      Dim DerLigB As Long
      With Worksheets("Données 2") 'Nom de feuille à adapter
      DerLigB = .Range("B" & Rows.Count).End(xlUp).Row
      .Range("O1").Resize(, 22).AutoFill Destination:=.Range("O1:AJ" & DerLigB), Type:=xlFillDefault
      End With

      Range("O1").Select

      MsgBox "Valider les adress ID, copier collage spéciale et copie onglet final. Terminer par trier selon Adress ID et heure de passage"
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Remarques :
    - la déclaration de DerLigB ne doit pas être faite 2 fois,
    - il n'est pas nécessaire de sélectionner les feuilles pour faire le traitement (Sheets("Données 2").Select).

    Sinon, le code doit fonctionner correctement.

    A+
    0
    1. mamined
       
      Hello Gyrus,

      merci infiniment. C'est parfait et fonctionne super bien comme je le souhaitais:-)
      0