OVH Cloud OVH Cloud

Comment insérer des feuilles dans un tableau par VBA ?

8 réponses
Avatar
nounours
Bonjour à toutes et tous
Nounours est novice en VBA. Soyez donc indulgents. Merci.

J'ai écris une procédure Sub en VBA devant insérer de nouvelles feuilles
dans un classeur et les renommer du nom d'un mois (Boucle for ... next
indentée). J'ai beau essayer plusieurs ruoutines, mais je n'obtient que des
messages d'erreur du type "impossible de renommer une feuille existante" ou
"indice pas déclaré" (MonMois(i) i allant de 1 à 12. De plus, je n'obtient
que 6 nouvelles feuilles au lieu de 12. Mon classuer possède déjà une feuille
(Feuil1)
Pour écrire ma routine, je me suis inspiré d'une macro Excel que j'ai
enregistrée.
Quelqu'un peut-il me mettre sur la piste d'une solution ? J'ajoute que je
suis novice en VBA et débutant "éclairé" (par une bougie) en VB.
Merci d'avance pour toute suggestion.
nounours

8 réponses

Avatar
Daniel
Bonjour.
Poste ton code, on verra mieux ce qui ne va pas.
Cordialement.
Daniel
"nounours" a écrit dans le message de
news:
Bonjour à toutes et tous
Nounours est novice en VBA. Soyez donc indulgents. Merci.

J'ai écris une procédure Sub en VBA devant insérer de nouvelles feuilles
dans un classeur et les renommer du nom d'un mois (Boucle for ... next
indentée). J'ai beau essayer plusieurs ruoutines, mais je n'obtient que
des
messages d'erreur du type "impossible de renommer une feuille existante"
ou
"indice pas déclaré" (MonMois(i) i allant de 1 à 12. De plus, je n'obtient
que 6 nouvelles feuilles au lieu de 12. Mon classuer possède déjà une
feuille
(Feuil1)
Pour écrire ma routine, je me suis inspiré d'une macro Excel que j'ai
enregistrée.
Quelqu'un peut-il me mettre sur la piste d'une solution ? J'ajoute que je
suis novice en VBA et débutant "éclairé" (par une bougie) en VB.
Merci d'avance pour toute suggestion.
nounours



Avatar
Modeste
Bonsour®
Daniel wrote:
Poste ton code, on verra mieux ce qui ne va pas.


c'est bien vrai ça !!!
des solutions il en a plein.
une usine à gaz c'est pas toujours évident à débugger sans la voir...

Sub Macro1()
On Error GoTo trterr
For i = 1 To 12
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = Format("01/" & i, "mmmm yyyy")
Next
Exit Sub
trterr:
MsgBox Format("01/" & i, "mmmm yyyy") & " existe déja !!!", vbExclamation
ActiveSheet.Delete
i = i + 1
If i > 12 Then Exit Sub
Resume
End Sub



--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
nounours
Bonjour Daniel
voici le code. L'erreur est la suivante : "Tableau attendu".

Dim i As Integer
Dim MonMois As String

Dim j As Integer
Dim x As String

i = 1
j = 2
For i = 1 To 12
Sheets.Add
x = "Feuil" & Str(j)
Sheets(x).Select
Sheets(x).Name = MonMois(i) -> ERREUR : Tableau attendu
i = i + 1
j = j + i
Next i
End Sub








Bonjour.
Poste ton code, on verra mieux ce qui ne va pas.
Cordialement.
Daniel
"nounours" a écrit dans le message de
news:
Bonjour à toutes et tous
Nounours est novice en VBA. Soyez donc indulgents. Merci.

J'ai écris une procédure Sub en VBA devant insérer de nouvelles feuilles
dans un classeur et les renommer du nom d'un mois (Boucle for ... next
indentée). J'ai beau essayer plusieurs ruoutines, mais je n'obtient que
des
messages d'erreur du type "impossible de renommer une feuille existante"
ou
"indice pas déclaré" (MonMois(i) i allant de 1 à 12. De plus, je n'obtient
que 6 nouvelles feuilles au lieu de 12. Mon classuer possède déjà une
feuille
(Feuil1)
Pour écrire ma routine, je me suis inspiré d'une macro Excel que j'ai
enregistrée.
Quelqu'un peut-il me mettre sur la piste d'une solution ? J'ajoute que je
suis novice en VBA et débutant "éclairé" (par une bougie) en VB.
Merci d'avance pour toute suggestion.
nounours








Avatar
Daniel
Apparemment, essaie avec dim MonMois au lieu de dim MonMois as String
Daniel
"nounours" a écrit dans le message de
news:
Bonjour Daniel
voici le code. L'erreur est la suivante : "Tableau attendu".

Dim i As Integer
Dim MonMois As String

Dim j As Integer
Dim x As String

i = 1
j = 2
For i = 1 To 12
Sheets.Add
x = "Feuil" & Str(j)
Sheets(x).Select
Sheets(x).Name = MonMois(i) -> ERREUR : Tableau attendu
i = i + 1
j = j + i
Next i
End Sub








Bonjour.
Poste ton code, on verra mieux ce qui ne va pas.
Cordialement.
Daniel
"nounours" a écrit dans le message
de
news:
Bonjour à toutes et tous
Nounours est novice en VBA. Soyez donc indulgents. Merci.

J'ai écris une procédure Sub en VBA devant insérer de nouvelles
feuilles
dans un classeur et les renommer du nom d'un mois (Boucle for ... next
indentée). J'ai beau essayer plusieurs ruoutines, mais je n'obtient que
des
messages d'erreur du type "impossible de renommer une feuille
existante"
ou
"indice pas déclaré" (MonMois(i) i allant de 1 à 12. De plus, je
n'obtient
que 6 nouvelles feuilles au lieu de 12. Mon classuer possède déjà une
feuille
(Feuil1)
Pour écrire ma routine, je me suis inspiré d'une macro Excel que j'ai
enregistrée.
Quelqu'un peut-il me mettre sur la piste d'une solution ? J'ajoute que
je
suis novice en VBA et débutant "éclairé" (par une bougie) en VB.
Merci d'avance pour toute suggestion.
nounours










Avatar
nounours
Merci à Daniel et Modeste pour leur aide.
Modeste : je ne travaille pas chez AZF, lol

Cordialement
nounours
Avatar
JLuc
*Bonjour nounours*,

Bonjour Daniel
voici le code. L'erreur est la suivante : "Tableau attendu".

Dim i As Integer
Dim MonMois As String

Dim j As Integer
Dim x As String

i = 1
j = 2
For i = 1 To 12
Sheets.Add
x = "Feuil" & Str(j)
Sheets(x).Select
Sheets(x).Name = MonMois(i) -> ERREUR : Tableau attendu
Il faudrais aussi initialiser ton tableau, sinon il vb ne connais pas

sa dimention, ni ce qu'il doit mettre ( par defaut = vide )
MonMois = Array("Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Jui", _
"Aou", "Sep", "Oct", "Nov", "Dec")
(avec Option Base 1 : 1->12, avec Option Base 0 : 0->11)
i = i + 1
La variable i est automatiquement incrementee par le "For",si tu la

reincrmente, tu fais que 6 boucles au lieu de 12

j = j + i
Next i
End Sub








Bonjour.
Poste ton code, on verra mieux ce qui ne va pas.
Cordialement.
Daniel
"nounours" a écrit dans le message de
news:
Bonjour à toutes et tous
Nounours est novice en VBA. Soyez donc indulgents. Merci.

J'ai écris une procédure Sub en VBA devant insérer de nouvelles feuilles
dans un classeur et les renommer du nom d'un mois (Boucle for ... next
indentée). J'ai beau essayer plusieurs ruoutines, mais je n'obtient que
des
messages d'erreur du type "impossible de renommer une feuille existante"
ou
"indice pas déclaré" (MonMois(i) i allant de 1 à 12. De plus, je n'obtient
que 6 nouvelles feuilles au lieu de 12. Mon classuer possède déjà une
feuille
(Feuil1)
Pour écrire ma routine, je me suis inspiré d'une macro Excel que j'ai
enregistrée.
Quelqu'un peut-il me mettre sur la piste d'une solution ? J'ajoute que je
suis novice en VBA et débutant "éclairé" (par une bougie) en VB.
Merci d'avance pour toute suggestion.
nounours









--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS



Avatar
jb
Bonjour,

Génère des onglets Janvier,Février,Mars,...Décembre

Sub genereMois()
For m = 1 To 12
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(DateSerial(2005, m, 1), "mmmm")
Next
End Sub

Cordialement JB
Avatar
jb
Bonjour,

Génére des onglets Janvier,Février,...Décembre

Sub genereMois()
For m = 1 To 12
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(DateSerial(2005, m, 1), "mmmm")
Next
End Sub

Cordialement JB