VBA : Etendre une formule sur une colonne mise à jour régulierement

Luigi13

XLDnaute Nouveau
Bonjour à tous,

J'ai une base de données sous Excel en forme de colonnes et j'ai rajouter d'autres colonnes manuellement juste à coté avec des formules me permettants d'avoir des données pour des croisés dynamiques.

Pour que mes formules puissent s'appliquer sur toutes les données, je rajoute par exemple une colonne D avec ma formule en D2 puis je tire manuellement cette cellule jusqu'a la dernière ligne correspondant à la derniere cellule non vide de la colonne C par exemple. Et ce pour toutes les colonnes rajoutés.

J'aimerai me faire une macro détectant automatiquement par exemple la derniere cellule non vide de la colonne C et me tirant la formule de ma colonne D à la ligne égale à la derniere cellule non vide de la colonne C. J'espere que vous m'avez comprit :eek:

Si vous avez des idées ? Car je suis débutant et la je bloque...:confused:

Merci à vous !
 

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Sans doute .
J'ai essayé de mettre ca en macro en m'inspirant de l'enregistereur de macro et de la ligne de code que vous m'avez donné :

Code:
Sub DerniereLigne

Range("AB2").AutoFill Destination:=Range("AB2:AB" & Range("B65536").End(xlUp).Row)
Range("AB2").Select

End Sub

Mais ca ne marche pas
 

tototiti2008

XLDnaute Barbatruc
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Re,

il faut que AB2 contienne la formule à recopier
est-ce le cas ?
La colonne B est bien celle à tester pour déterminer le nombre de lignes ?
La feuille en question est bien activée quand la macro est lancée ?
 

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

oui AB2 contient la formule, la colonne B est celle de référence pour étendre la formule. Ensuite pour activer j'ai mis un .Activate mais ca ne marche pas.

Code:
Sub DerniereLigne()
   
 Sheets("Pilotage Global").Activate
    Range("AB2").AutoFill Destination:=Range("AB2:AB" & Range("B65536").End(xlUp).Row)
    Range("AB2").Select


End Sub
 

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Ben jai fait un enregistreur de macro pour avoir un apercut du code. J'ai fais enregistrer puis j'ai fais l'action de cliquer sur le bas de ma cellule AB2 pour qu'elle s'étende sur toute la colonne et ca ma donné ca :
Code:
Sub Macro5()
'
' Macro5 Macro
' Macro enregistrée le 21/05/2010 par GTLX7024
'

'
    Selection.AutoFill Destination:=Range("AB2:AB5176")
    Range("AB2:AB5176").Select
End Sub

Ensuite j'ai remplacé les lignes avec celle que vous m'avez donné et ca ma donné ca :
Code:
Sub DerniereLigne()
   
 Sheets("Pilotage Global").Activate
    Range("AB2").AutoFill Destination:=Range("AB2:AB" & Range("B65536").End(xlUp).Row)
    Range("AB2").Select

End Sub


Il n'ya pas d'autres code et l'enregistreur ma créer un module avec ce code dedans. Vut que je suis débutant j'ai du surement mal m'y prendre :confused:
 

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Re, dsl, voila un extrait du fichier et dans vba il ya le module!

Cette base augmente régulierement donc j'aimerai que ma colonne "Retard sur ETAT 5 " s'étende au fur et a mesure que la colonne OEIE augmente. "Retard sur ETAT 5" étant une colonne ajoutée manuellement et le reste est un collage avec liaison d'une base de données!
 

Pièces jointes

  • Classeur2.xls
    44.5 KB · Affichages: 538
  • Classeur2.xls
    44.5 KB · Affichages: 549
  • Classeur2.xls
    44.5 KB · Affichages: 583

tototiti2008

XLDnaute Barbatruc
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Re,

eh bien, elle marche trés bien cette macro....

efface toutes les formules de la colonne AB sauf en AB2
lance la macro
reagrde en AB3 et jusqu'au bout de la liste : la formule est là
 

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

Bonjour, je me permet de ré intervenir car je voudrai faire autre chose mais dans le meme principe : Etirer la formule située a la colonne C2 par rapport aux cellules de la colonne B commencant a B2 si elles contiennent du texte.

Grosso modo, étirer la formule de C2 pour toutes les cellules de B2 à B5000 qui ne sont pas vides. Donc si je reprend la formule citée plus haut, je rajoute une boucle :

Code:
While Range("B2:B5000").Text <> ""


Range("C2").AutoFill Range("C2:C" & Range("B5000").End(xlUp).Row)
Wend

Mais cela ne marche pas! Auriez vous une idée?
 
Dernière édition:

Luigi13

XLDnaute Nouveau
Re : VBA : Etendre une formule sur une colonne mise à jour régulierement

:( Up! svp
J'ai essayé un autre code pour compter la derniere ligne non vide de ma colonne B pour ensuite faire un autofill sur ma colonne AB variant jusqu'au nombre de la derniere cellule non vide de la colonne B. Et ca ne fonctionne pas . le code :
Code:
Sub SelectCel()

i = Range("B65536").End(xlUp).Row 'Est censé compter la derniere cellule non vide de la colonne B'
If Range("B" & i).Text <> "" Then
   Range("AB2").AutoFill Range("AB2:AB" & Range("B & i").End(xlUp).Row)
      Else
   Range("AB" & i).Value = ""
      End If

           End Sub

Pourriez vous m'aider?
De plus j'aimerai qu'il me repère surtout le .text que le .value car mes données proviennent d'un collage avec liaison et meme si une cellule est vide à l'affichage, elle contient quand meme une valeur, celle de la liaison
 

Discussions similaires

Réponses
6
Affichages
216

Statistiques des forums

Discussions
312 523
Messages
2 089 317
Membres
104 119
dernier inscrit
karbone57