OVH Cloud OVH Cloud

creationd'une feuille par macro

3 réponses
Avatar
titi
Bonjour tout le monde

j'ai un petit souci avec une macro que j'aimerais vous soumettre

voilà j'ai donc ecrit une macro qui ouvre une page HTML ( precedemment
enregistrée sous Ie6)
ensuite ma macro cree une feuille temporaire ou je fais du couper
coller des infos de la page html que je souhaite conserver
ensuite la macro enregistre la feuille sous un format -xls
puis la ferme
et ferme ensuite la page html

tout ca fonctionne tres bien sur une seule page html
mon pb vient lors de la creation de la seconde feuille
( en fait j'ai plusieurs pages html enregistrées )
lors de la creation , la seconde fois de la feuille temporaire , excel
la nomme sheet2 et moi dans ma macro excell nomme la feuille sheet1
et alors là apres ca part en sucette grave ( pour rester poli et zen)
c'est du copier coller de n'importe quoi

donc je voulais savoir comment fait on pour créer une feuille
temporaire qui reste toujours la même qu'elle que soit le nombre de
passages de la macro ??
je suis pas sur d'etre tres tres clair là
pour aider un peu, enfin j'espere

voila à quoi ressemble le bout de code qui me pose pb



Sheets.Add ' ajout d'une feuille
Windows(Fichier).Activate 'je repasse sur ma page html
Range("B4").Select ' je selectonne une cellule
Selection.Cut 'je fais un couper du contenu
Sheets("Sheet1").Select 'je repasse sur ma feuille temp.
Range("B2").Select 'je selectionne une cellule
ActiveSheet.Paste 'et je fais un coller
Windows(Fichier).Activate
Range("I13").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B4").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("I14:Q14").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B10").Select
ActiveSheet.Paste
Range("E10:J10").Select
Selection.Cut
Range("C10").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("K16:Q45").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B11").Select
ActiveSheet.Paste

en fait il faudrait que je crée une feuille temporaire et que je lui
donne un nom
mais bon comme je suis un peu buse sur excel
je passe tout par l'enregistreur de macro
si quelqu'un pouvait me mettre sur la voie ce serait sympa

merci

3 réponses

Avatar
Denis Michon
Bonjour Titi,


Pour créer une feuille supplémentaire ayant comme non toto :

Worksheets.Add.Name = "toto"


Pour supprimer cette feuille sans message d'avertissement

Application.DisplayAlerts = False
Worksheets("toto").Delete


attention , si tu essaies de supprimer une feuille qui n'existe pas , cela va provoquer une erreur. Ajoute à la ligne
précédente : On error re resume next


Salutations!




"titi" a écrit dans le message de news:
Bonjour tout le monde

j'ai un petit souci avec une macro que j'aimerais vous soumettre

voilà j'ai donc ecrit une macro qui ouvre une page HTML ( precedemment
enregistrée sous Ie6)
ensuite ma macro cree une feuille temporaire ou je fais du couper
coller des infos de la page html que je souhaite conserver
ensuite la macro enregistre la feuille sous un format -xls
puis la ferme
et ferme ensuite la page html

tout ca fonctionne tres bien sur une seule page html
mon pb vient lors de la creation de la seconde feuille
( en fait j'ai plusieurs pages html enregistrées )
lors de la creation , la seconde fois de la feuille temporaire , excel
la nomme sheet2 et moi dans ma macro excell nomme la feuille sheet1
et alors là apres ca part en sucette grave ( pour rester poli et zen)
c'est du copier coller de n'importe quoi

donc je voulais savoir comment fait on pour créer une feuille
temporaire qui reste toujours la même qu'elle que soit le nombre de
passages de la macro ??
je suis pas sur d'etre tres tres clair là
pour aider un peu, enfin j'espere

voila à quoi ressemble le bout de code qui me pose pb



Sheets.Add ' ajout d'une feuille
Windows(Fichier).Activate 'je repasse sur ma page html
Range("B4").Select ' je selectonne une cellule
Selection.Cut 'je fais un couper du contenu
Sheets("Sheet1").Select 'je repasse sur ma feuille temp.
Range("B2").Select 'je selectionne une cellule
ActiveSheet.Paste 'et je fais un coller
Windows(Fichier).Activate
Range("I13").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B4").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("I14:Q14").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B10").Select
ActiveSheet.Paste
Range("E10:J10").Select
Selection.Cut
Range("C10").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("K16:Q45").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B11").Select
ActiveSheet.Paste

en fait il faudrait que je crée une feuille temporaire et que je lui
donne un nom
mais bon comme je suis un peu buse sur excel
je passe tout par l'enregistreur de macro
si quelqu'un pouvait me mettre sur la voie ce serait sympa

merci
Avatar
Brigitte
Bonjour,

j'ai eu un problème similaire que j'ai résolu en renommant la feuille que
j'ajoute. Comme ça je suis sûre de toujours travailler sur la bonne feuille.

Sheets.Add.Name = "toto"

Brigitte.

"titi" a écrit dans le message de
news:
Bonjour tout le monde

j'ai un petit souci avec une macro que j'aimerais vous soumettre

voilà j'ai donc ecrit une macro qui ouvre une page HTML ( precedemment
enregistrée sous Ie6)
ensuite ma macro cree une feuille temporaire ou je fais du couper
coller des infos de la page html que je souhaite conserver
ensuite la macro enregistre la feuille sous un format -xls
puis la ferme
et ferme ensuite la page html

tout ca fonctionne tres bien sur une seule page html
mon pb vient lors de la creation de la seconde feuille
( en fait j'ai plusieurs pages html enregistrées )
lors de la creation , la seconde fois de la feuille temporaire , excel
la nomme sheet2 et moi dans ma macro excell nomme la feuille sheet1
et alors là apres ca part en sucette grave ( pour rester poli et zen)
c'est du copier coller de n'importe quoi

donc je voulais savoir comment fait on pour créer une feuille
temporaire qui reste toujours la même qu'elle que soit le nombre de
passages de la macro ??
je suis pas sur d'etre tres tres clair là
pour aider un peu, enfin j'espere

voila à quoi ressemble le bout de code qui me pose pb



Sheets.Add ' ajout d'une feuille
Windows(Fichier).Activate 'je repasse sur ma page html
Range("B4").Select ' je selectonne une cellule
Selection.Cut 'je fais un couper du contenu
Sheets("Sheet1").Select 'je repasse sur ma feuille temp.
Range("B2").Select 'je selectionne une cellule
ActiveSheet.Paste 'et je fais un coller
Windows(Fichier).Activate
Range("I13").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B4").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("I14:Q14").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B10").Select
ActiveSheet.Paste
Range("E10:J10").Select
Selection.Cut
Range("C10").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("K16:Q45").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B11").Select
ActiveSheet.Paste

en fait il faudrait que je crée une feuille temporaire et que je lui
donne un nom
mais bon comme je suis un peu buse sur excel
je passe tout par l'enregistreur de macro
si quelqu'un pouvait me mettre sur la voie ce serait sympa

merci


Avatar
Frédéric Sigonneau
Bonsoir,

Tu peux aussi faire référence à la feuille ajoutée en lui affectant une
variable. Au lieu de :

Sheets.Add

utilise :

Dim Sht As Worksheet
Set Sht=Sheets.Add

et ensuite :

Windows(Fichier).Activate
Range("B4").Cut
Sht.Select
Sht.Range("B2").Select
ActiveSheet.Paste

etc..

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde

j'ai un petit souci avec une macro que j'aimerais vous soumettre

voilà j'ai donc ecrit une macro qui ouvre une page HTML ( precedemment
enregistrée sous Ie6)
ensuite ma macro cree une feuille temporaire ou je fais du couper
coller des infos de la page html que je souhaite conserver
ensuite la macro enregistre la feuille sous un format -xls
puis la ferme
et ferme ensuite la page html

tout ca fonctionne tres bien sur une seule page html
mon pb vient lors de la creation de la seconde feuille
( en fait j'ai plusieurs pages html enregistrées )
lors de la creation , la seconde fois de la feuille temporaire , excel
la nomme sheet2 et moi dans ma macro excell nomme la feuille sheet1
et alors là apres ca part en sucette grave ( pour rester poli et zen)
c'est du copier coller de n'importe quoi

donc je voulais savoir comment fait on pour créer une feuille
temporaire qui reste toujours la même qu'elle que soit le nombre de
passages de la macro ??
je suis pas sur d'etre tres tres clair là
pour aider un peu, enfin j'espere

voila à quoi ressemble le bout de code qui me pose pb

Sheets.Add ' ajout d'une feuille
Windows(Fichier).Activate 'je repasse sur ma page html
Range("B4").Select ' je selectonne une cellule
Selection.Cut 'je fais un couper du contenu
Sheets("Sheet1").Select 'je repasse sur ma feuille temp.
Range("B2").Select 'je selectionne une cellule
ActiveSheet.Paste 'et je fais un coller
Windows(Fichier).Activate
Range("I13").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B4").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("I14:Q14").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B10").Select
ActiveSheet.Paste
Range("E10:J10").Select
Selection.Cut
Range("C10").Select
ActiveSheet.Paste
Windows(Fichier).Activate
Range("K16:Q45").Select
Selection.Cut
Sheets("Sheet1").Select
Range("B11").Select
ActiveSheet.Paste

en fait il faudrait que je crée une feuille temporaire et que je lui
donne un nom
mais bon comme je suis un peu buse sur excel
je passe tout par l'enregistreur de macro
si quelqu'un pouvait me mettre sur la voie ce serait sympa

merci