Morgan3535
Messages postés2Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention11 mai 2006
-
11 mai 2006 à 15:46
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 2012
-
16 mai 2006 à 15:20
Bonjour
Bonjour
Débutant jai 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 lensemble des feuilles dun classeur. ces données sont à chaque fois dans la même cellule.
Lors que jactive cette macro pour une mise à jour de ma feuille récap, les données viennent sajouter 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
Alboure
Messages postés42Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention21 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
Morgan3535
Messages postés2Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention11 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 ?
Morgan3535, ta demande est étrange (peut-être mal formulée?).
Si les valeurs que tu recopies dans la "Cover Page" ne doivent pas "sajouter 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>