Demande d'aide

DAMIEN001 Messages postés 19 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 octobre 2010 - 16 sept. 2010 à 11:48
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 16 sept. 2010 à 18:17
bonjour,
J'ai un classeur sur lequel je veux faire le remplissage de manière automatique des feuilles de ce classeur. Voici le code que j'ai ecris:
Sub remplissage()
Dim g As Range
Dim i As Integer, j As Integer
Dim ws As Worksheet
Cells(3, 1) = Now
Cells(3, 9) = Now
For j = 2 To 12
For i = 7 To 37
For Each ws In ThisWorkbook.Worksheets("TS SAUVEGARDE10")
Set g = ws.Cells(9, 6)
g.Copy ThisWorkbook.Worksheets("SUIVI MENSUEL").Cells(i, j)
Application.OnTime Now + TimeValue("00:00:05"), "generer"
Next ws
Next i
Next j
' a faire a la fin
End Sub
Mais lorsque je complile , le message suivant s'affiche:<< Erreur d'execution '438'
Propriété ou methode non gérée par l'objet >>
pouquoi ce message et s'il vous plaît ,si possible,donnez moi un autre moyen ou faites une corection à mon code .
Merci de votre bonne comprehension.

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2010 à 12:33
Salut

La prochaine fois que tu colles du code, utilise la coloration syntaxique 3ème icone à droite plus facile à lire. Merci

Quand tu as une erreur, précise sur quelle ligne elle apparait.

Beaucoup de choses à revoir.
On ne sait pas ce que tu veux faire, donc difficile de te savoir comment corriger.

Quand tu utilises Cells ou Range pour en extraire le contenu ou écrire dedans, précise toujours .Value : d'une part cela facilitera la relecture et d'autre part cela facilitera la vie du compilateur (et évitera certains bugs).

For Each ws In ThisWorkbook.Worksheets("TS SAUVEGARDE10")
est incohérent avec la déclaration de 'ws'
'ws' est une feuille.
Si tu dois parcourir toutes les feuilles de ton classeur, ne précise pas le nom de la feuille :
For Each ws In ThisWorkbook.Worksheets

Si tu dois énumérer les cellules des colonnes 2 à 12 et lignes 7 à 37 (ou l'inverse), mieux vaudrait travailler avec les Range que d'utiliser des boucles For-Next.

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
DAMIEN001 Messages postés 19 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 octobre 2010
16 sept. 2010 à 13:06
Bonjour Jack,
Meci de votre reponse. Au fait ce que je veux faire est la suivante:
-J'ai un classeur où j'ai crée 3 feuilles.
-toutes ces feuilles contiènnent des tableaux differants
-Il y a une feuille dans ce dernier que je veux générer tous les jours à la même heure (07:00:00),mais il doit être la copie extat de la feuille originaire sans les modifications apportées à l'original
-Ensuite je voudrais copier la cellule F9 ( des feuilles générer) vers une autre feuille ( qui contient un tableau mais avec plusieurs cellules [B7:M37])
-Lier la cellule d'arrivée à la cellule de depart par un lien hyper-text et ainsi de suite

Merci de votre bonne comprehension
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2010 à 14:18
Ah, voilà des éclaircissements.

-J'ai un classeur où j'ai crée 3 feuilles. Ok - dis nous comment elles s'appellent, car dans les explications qui suivent, on ne sait jamais de quelle feuille tu parles
-toutes ces feuilles contiènnent des tableaux differants Ok
-Il y a une feuille dans ce dernier classeur ? pour l'instant, tu ne parles que d'un seul classeur
que je veux générer tous les jours à la même heure (07:00:00),mais il doit être la copie extat exacte de la feuille originaire originale sans les modifications apportées à l'original
Dans ce cas, pourquoi prends-tu la feuille modifiée ?
Pourquoi ne pas stocker une feuille qu'on appellerait "Originale" avec les cellules qu'il te faut + rendre cette feuille invisible à l'utilisateur.
Par programme, il devient alors simple de recopier l'original dans la feuille de travail.
-Ensuite je voudrais copier la cellule F9 ( des feuilles générer)
générées par quoi ?
vers une autre feuille ( qui contient un tableau mais avec plusieurs cellules [B7:M37]) Ok - pour faire ça, il te suffit d'enregistrer une macro pendant que tu fais la manip à la main
-Lier la cellule d'arrivée à la cellule de depart par un lien hyper-text et ainsi de suite Là aussi, si tu enregistres une macro pendant que tu le fais à la main, tu auras le code nécessaire, il te suffira ensuite d'appliquer ce code à toutes les cellules que tu souhaites, avec une simple boucle For-Next
0
DAMIEN001 Messages postés 19 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 octobre 2010
16 sept. 2010 à 15:42
Merci Jack,je vais essayer cette approche au probleme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DAMIEN001 Messages postés 19 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 octobre 2010
16 sept. 2010 à 16:49
bonsoir ,
s'il vous plaît je n'arrive pas toujour à écrire la macros qui me pemettra de copier une cellule ("f9") de la feuille copié ("originale") vers une autre feuille qui contient les cellules (B7:M37), à chaque fois que la feuille est générée.
Pouvez-vous me donner un script qui me permettra de resoudre se problème?

Merci.
0
DAMIEN001 Messages postés 19 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 octobre 2010
16 sept. 2010 à 17:13
bonjour ,
j'ai ecris un code qui me permet de copier un cellule vers une autre cellule (une autre feuille du même clesseur). Voici le code:
Sub remplissage()
Dim g As Range
With ThisWorkbook.Worksheets("TS SAUVEGARDE10")
Set g = ThisWorkbook.Worksheets("TS SAUVEGARDE10") .Range("F$9")
g.Copy ThisWorkbook.Worksheets("SUIVI MENSUEL").Range("B7")
End With
End Sub

Il marche pour un cas .Comment faire pour( sachant que la feuille "TS SAUVEGARDE10" est dupliqué à un moment de la journée)les cellules de de la feuille "SUIVI MENSUEL"puissent avoir les même valeurs que les cellules (F9) des feuilles"TS SAUVEGARDE10"?
Quel code ecrire?
Merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 sept. 2010 à 18:17
Puisque tes cellules sont toujours les mêmes, pourquoi n'enregistres-tu pas une macro pendant que tu le fait à la main ?
Tu auras le code tout prêt.
Quelle est ta difficulté ?
0
Rejoignez-nous