PB boucle "for each" sur quelques feuilles seulement - VB/VBA/VBS - Programmation
Marsh Posté le 12-09-2009 à 18:08:44
Salut, commence par un code correct , lisible et propre, on verra pour la suite, à toi de le tester
Option Explicit |
PS: Le balisage du code n'est pas interdit : Sélectionner le code puis clic sur Icône "Fixe"
Marsh Posté le 12-09-2009 à 18:33:43
Hello
Merci beaucoup pour ta réponse
Ayant cherché encore et avec ta solution j'ai mixé car j'avais des messages d'erreurs avec ces types de lignes:
|
Du coup ça donne ça et ça marche ...sauf le souci évoqué en fin de mon premier post : les cellules contenant un "nom" existant que je souhaite d'office écraser ou réutiliser, en tout cas, je veux éviter d'avoir à cliquer sur oui 25 fois (je les ai comptés...)
|
merci encore pour ta réponse
Marsh Posté le 12-09-2009 à 19:29:07
Re, peut-être via
|
Tu dois pouvoir réduire certains codes du type
|
en
Worksheets(i).Range("AB28" ).Paste |
2 utilitaires qui pourraient t'être utile http://www.oaltd.co.uk/Indenter/Default.htm
et la version VBA http://www.mztools.com/v3/download.aspx
Marsh Posté le 12-09-2009 à 21:34:56
Excellent!!!
vraiment un grand merci
|
Ca a marché je n'ai plus de message à cliquer
Pour les outils je regarderai volontiers!!!
Enfin pour cette ligne:
|
ça me met une erreur, alors j'ai gardé la version longue.
Merci encore
Marsh Posté le 12-09-2009 à 17:04:57
Bonjour à tous
le titre est pas très clair je sais, mais je ne savais pas comment l'exprimer.
J'essaie de faire une macro qui permet de faire une mise à jour entre un fichier excel estampillé "ancienne version" vers le même fichier excel "estampillé "nouvelle version" (fichier identique visuellement mais avec de nouvelles macro et de nouveaux calculs)
Mon besoin est de pouvoir faire de nombreux copier/coller sur certaines feuilles vers les même feuilles du nouveau fichier grâce à une boucle. Voici le code qui me fait une erreur:
______________________________________________________________________________
Dim i As Worksheets
Dim mois1 As Worksheets
Dim mois2 As Worksheets
mois1 = Array("janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" )
mois2 = Array("j", "f", "m", "a", "m1", "j1", "j2", "a1", "s", "o", "n", "d" )
For Each i In mois1
Worksheets(i).Select
Range("J4:M34" ).Select
Selection.ClearContents
Next i
For Each i In mois2
Windows(nomfichiersuivant).Activate
Sheets(i).Select
Range("B29:E29" ).Select
Selection.Copy
Windows(NomCeFichier).Activate
Sheets(i).Select
Range("B29:E29" ).Select
ActiveSheet.Paste
Windows(nomfichiersuivant).Activate
Sheets(i).Select
Range("AB28:AD28" ).Select
Application.CutCopyMode = False
Selection.Copy
Windows(NomCeFichier).Activate
Sheets(i).Select
Range("AB28:AD28" ).Select
ActiveSheet.Paste
Next i
For Each i In mois1
Windows(nomfichiersuivant).Activate
Worksheets(i).Select
Range("J4:M34" ).Select
Selection.Copy
Windows(NomCeFichier).Activate
Worksheets(i).Select
Range("J4" ).Select
ActiveSheet.Paste
Windows(nomfichiersuivant).Activate
Worksheets(i).Select
Range("D4:G34" ).Select
Selection.Copy
Windows(NomCeFichier).Activate
Worksheets(i).Select
Range("d4" ).Select
ActiveSheet.Paste
Next i
________________________________________________________________________________
Avec ces différents copier, j'ai un autre problème qui apparait:
certaines plage (que ce soit dans le fichier "ancienne version" que dans celui "nouvelle version, puisqu'ils sont identiques; seul le fichier nouvelle version est vierge de toutes données, je reprécise), donc certaine plages contiennent des noms de listes de validation.
Forcément lorsque je veux coller, j'ai un message d'excel qui me demande si je veux bien garder le même nom de définition ou le changer.
Dans mon cas, je veux garder le même nom...mais je ne sais pas comment l'intégrer dans la macro automatiquement.
Désolé pour la longueur
Merci d'avance pour votre aide.
---------------
SuRgEoN