Glisser une formule par macro

BAT

XLDnaute Occasionnel
Bonjour à tous

J'ai plusieurs formules sur la ligne n° 2 (de la cellule D2 à G2).

Je souhaite que ma macro glisse ces formules jusqu'à la dernière ligne de ma feuille.

En gros si j'ai des données jusqu'à la ligne 500, la macro doit glisser les formules de D2 à G2 jusqu'à D500 et G500.

Commen est-ce possbile ???

Merci d'avance à tous !
 

BAT

XLDnaute Occasionnel
Re : Glisser une formule par macro

bONJOUR !

Ca ne marche pas !

En fait le contenu de mon précédent méssage était un exemple.

Ce qui ne bouge pas c'est la position de mes formules. Elles sont toujours en cellule D2 à G2. Si j'ai des données de A2 à F47, la macro doit me glisser mes formues de D2 : G2 jusqu'à D47 : G47.
 

wilfried_42

XLDnaute Barbatruc
Re : Glisser une formule par macro

salut

si j'ai bien compris, ca devrait etre comme ca :

for each cel in range(A2:A47)
if not isempty(cel) then
range("G" & cstr(cel.row)) = range("D" & cstr(cel.row))
next

enfin je croix, pas tres ferru en VBA

petite précision, si tu as une formule en d2, tu as forcement une cellule non vide dans la plage A2:F47

salutations
 

wilfried_42

XLDnaute Barbatruc
Re : Glisser une formule par macro

je ne comprends pas ce que tu veux, une macro n'est pas necessaire

il suffit, si j'ai compris de tester la valeur maitresse >0 pour effrectuer le calcul et de tirer les formules vers le bas

cela sera plus rapide qu'une macro

a te lire
 

BAT

XLDnaute Occasionnel
Re : Glisser une formule par macro

La macro est necessaire dans le sens où je souhaite intégrer ce bout de macro dans une macro que j'ai déjà réalisée.

Si je m'enregistre le faire cela me donne

Selection.AutoFill Destination:=Range("D2:G47")

Or Range("D2: D47") est une variable. Dans mon exemple il y à des données jusqu'en G47. Mais si j'ai ensuite des données jusqu'en G855, la macro vas me glisser la formule jusqu'à la ligne 47 au lieu de la glisser juqu'à la ligne 855 !!!

Je crois que je ne suis toujours pas très clair !!!
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Glisser une formule par macro

Salut BAT
Bonsoir le fil
Bonsoir le Forum

il suffit je pense de faire en sorte que la derniere ligne de la plage soit détectée par la macro
Exemple non testé
Code:
Selection.AutoFill Destination:= Range("D2:G" & Range("D65536").End(xlUp).Row)
ou Range("D65536").End(xlUp).Row détecte la derniere ligne non vide de la colonne D en partant du bas 65536 étant la derniere ligne de la colonne
Bonne fin de Soirée :p
 
Dernière édition:

BAT

XLDnaute Occasionnel
Re : Glisser une formule par macro

Bonsoir à tous et merci de vos réponses !

Je suis désolé mais je n'y arrive pas ! J'ai repris chacun de vos codes mais aucun ne marche !!

Sur cet exemple l'erreur est : La méthode range de l'objet _Global à éhoué
Selection.AutoFill Destination:=Range("D2:G" & CStr(Range("A:65535").End(xlUp).Row))
End Sub

Et sur cet exemple, C'est la méthode autofil de la classe range qui à échouée !!
Selection.AutoFill Destination:=Range("D2:G" & Range("D65536").End(xlUp).Row)

Qu'est ce que j'ai loupé !!!
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 755
Messages
2 091 728
Membres
105 058
dernier inscrit
axcelle