Maj. données VBA

Morgan3535 Messages postés 2 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 11 mai 2006 - 11 mai 2006 à 15:46
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 16 mai 2006 à 15:20
Bonjour

Bonjour

Débutant j’ai réussi à bricoler une modifier bricoler une macro (recupéré sur le forum) me permettant des récupérer sur une feuille excel récap le nom des onglets + des données sur l’ensemble des feuilles d’un classeur. ces données sont à chaque fois dans la même cellule.

Lors que j’active cette macro pour une mise à jour de ma feuille récap, les données viennent s’ajouter en dessous des données précédentes alors que je souhaite qu'elles les remplacent.


Et malgrès plusieurs essais je suis bloqué alors si vous pouvez m'aider un grand merci


Voici ma macro

Sub up-date()
Application.ScreenUpdating = False
Range("C5:E600").Select
Selection.ClearContents
Dim my_onglet As Integer
Dim Nom, TA, TR, TV, TS, TI, TY, TP, TT
For my_onglet = 2 To Sheets.Count
Nom = Sheets(my_onglet).Name
Sheets(my_onglet).Select
TA = Range("C3")
TR = Range("E3")
TV = Range("K132")
TS = Range("J3")
TI = Range("K133")
TY = Range("K134")
TP = Range("K135")
TT = Range("A3")
Sheets("Cover Page").Select
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("A5") = Nom
Range("C5") = TA
Range("D5") = TR
Range("E5") = TV
Range("F5") = TS
Range("G5") = TI
Range("H5") = TY
Range("I5") = TP
Range("B5") = TT
Range("A5").Select
Next
End Sub

3 réponses

Alboure Messages postés 42 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 21 juin 2006
11 mai 2006 à 16:29
Salut, il faut juste virer le Selection.Insert Shift:=xlDown mais je te l'ai refait en plus court et sans utiliser de variables.

Sub update()
Application.ScreenUpdating = False
Range("C5:E600").Select
Selection.ClearContents
Dim my_onglet As Integer
For my_onglet = 2 To Sheets.Count
Sheets("Cover Page").Select
with sheets(my_onglet)
Range("A5") = .Name
Range("C5") = .Range("C3")
Range("D5") = .Range("E3")
Range("E5") = .Range("K132")
Range("F5") = .Range("J3")
Range("G5") = .Range("K133")
Range("H5") = .Range("K134")
Range("I5") = .Range("K135")
Range("B5") = .Range("A3")
end with
Next
End Sub

Alboure
0
Morgan3535 Messages postés 2 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 11 mai 2006
11 mai 2006 à 16:50
Merci, Pour la simplification impec et surtout beaucoup plus simple à comprendre pour moi mais en enlevant "Selection.Insert Shift:=xlDown " la feuille récap ne prend en compte que le dernière onglet du fichier ?
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
16 mai 2006 à 15:20
Salut 753455 Morgan3535, salut =177355 Alboure,

Morgan3535, ta demande est étrange (peut-être mal formulée?).

Si les valeurs que tu recopies dans la "Cover Page" ne doivent pas "s’ajouter en dessous des données précédentes" (ce qui n'était pas le cas dans ta macro initiale, elles s'ajoutaient au dessus), mais doivent remplacer les données précédentes : à la fin, il ne reste qu'une ligne.

Pourquoi parcourir les feuilles du classeur, y récupérer des données au même endroit de chaque feuilleau même endroit d'une seule feuille (donc une seule ligne dans la "Cover Page")?

D'où ta nouvelle question "la feuille récap ne prend en compte que le dernière onglet du fichier ?", à laquelle je viens de répondre : non, elles les prend toutes en compte, mais ne conserve que la dernière.

Précises ce que tu veux.

PS: j'ai essayé de poster hier soir, mais le site bougeait trop.
à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
Rejoignez-nous