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

Résolu/Fermé
mamined Messages postés 36 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 28 juillet 2020 - 22 sept. 2015 à 11:17
 mamined - 24 sept. 2015 à 10:31
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

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
22 sept. 2015 à 11:39
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
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
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
23 sept. 2015 à 17:58
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
Hello Gyrus,

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