Maj. données VBA

Signaler
Messages postés
2
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
11 mai 2006
-
Messages postés
792
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
-
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

Messages postés
42
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2006

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
Messages postés
2
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
11 mai 2006

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 ?
Messages postés
792
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
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>