un test sur l'existence d'une feuille nommée FeuilX ? for each f in sheets if f.name like "Feuil*" then exit sub next sheets.add
a+ rural thierry "Emcy" a écrit dans le message de news: 030a01c3bfd2$f4d3bb60$ Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Gil HASH
"ru-th" a écrit dans le message de news:eG4K2G%
Salut
un test sur l'existence d'une feuille nommée FeuilX ? for each f in sheets if f.name like "Feuil*" then exit sub next sheets.add
a+ rural thierry "Emcy" a écrit dans le message de news: 030a01c3bfd2$f4d3bb60$ Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé dans le classeur je crée d'abord la feuille en dernière position (Excel se débrouille très bien tout seul pour éviter de faire des doublons avec les noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le nom que je voudrais attribuer n'y est pas déjà J'ai besoin d'une variable n comme compteur et d'une variable booléenne comme indicateur de présence
Flg = False For n = 1 to ThisWorkbook.Sheets.Count - 1 (La dernière c'est la feuille que je viens de créer donc le test n'est pas utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer & vblf & "La feuille créée portera le nom " & ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la renommer manuellement par la suite" Flg = True Exit For End If Next n
If Flg = False Then ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name NomQueJeVeuxAttribuer End If
"ru-th" <ailleurs@nowhere> a écrit dans le message de
news:eG4K2G%23vDHA.2880@tk2msftngp13.phx.gbl...
Salut
un test sur l'existence d'une feuille nommée FeuilX ?
for each f in sheets
if f.name like "Feuil*" then exit sub
next
sheets.add
a+
rural thierry
"Emcy" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 030a01c3bfd2$f4d3bb60$a001280a@phx.gbl...
Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et
pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé
dans le classeur je crée d'abord la feuille en dernière position (Excel se
débrouille très bien tout seul pour éviter de faire des doublons avec les
noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le
nom que je voudrais attribuer n'y est pas déjà
J'ai besoin d'une variable n comme compteur et d'une variable booléenne
comme indicateur de présence
Flg = False
For n = 1 to ThisWorkbook.Sheets.Count - 1
(La dernière c'est la feuille que je viens de créer donc le test n'est pas
utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then
MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer &
vblf & "La feuille créée portera le nom " &
ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la
renommer manuellement par la suite"
Flg = True
Exit For
End If
Next n
If Flg = False Then
ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name NomQueJeVeuxAttribuer
End If
un test sur l'existence d'une feuille nommée FeuilX ? for each f in sheets if f.name like "Feuil*" then exit sub next sheets.add
a+ rural thierry "Emcy" a écrit dans le message de news: 030a01c3bfd2$f4d3bb60$ Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé dans le classeur je crée d'abord la feuille en dernière position (Excel se débrouille très bien tout seul pour éviter de faire des doublons avec les noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le nom que je voudrais attribuer n'y est pas déjà J'ai besoin d'une variable n comme compteur et d'une variable booléenne comme indicateur de présence
Flg = False For n = 1 to ThisWorkbook.Sheets.Count - 1 (La dernière c'est la feuille que je viens de créer donc le test n'est pas utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer & vblf & "La feuille créée portera le nom " & ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la renommer manuellement par la suite" Flg = True Exit For End If Next n
If Flg = False Then ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name NomQueJeVeuxAttribuer End If
Frédéric Sigonneau
Bonsoir,
Pour vérifier l'existence ou non d'une feuille d'un nom donné dans un classeur en évitant une boucle, tu peux utiliser, parmi d'autres astuces possibles, ce genre de code (sur une idée de Dana DeLouis) :
Sub NouvelleFeuille() Dim NomFeuille$, test NomFeuille = "MaFeuille" With ThisWorkbook On Error Resume Next test = Len(.Sheets(NomFeuille).Name) 'ici, Excel boucle pour toi :) On Error GoTo 0 .Sheets.Add.Name = _ IIf(Not CBool(test), NomFeuille, NomFeuille & .Sheets.Count) End With End Sub
FS
"ru-th" a écrit dans le message de news:eG4K2G%
Salut
un test sur l'existence d'une feuille nommée FeuilX ? for each f in sheets if f.name like "Feuil*" then exit sub next sheets.add
a+ rural thierry "Emcy" a écrit dans le message de news: 030a01c3bfd2$f4d3bb60$ Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé dans le classeur je crée d'abord la feuille en dernière position (Excel se débrouille très bien tout seul pour éviter de faire des doublons avec les noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le nom que je voudrais attribuer n'y est pas déjà J'ai besoin d'une variable n comme compteur et d'une variable booléenne comme indicateur de présence
Flg = False For n = 1 to ThisWorkbook.Sheets.Count - 1 (La dernière c'est la feuille que je viens de créer donc le test n'est pas utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer & vblf & "La feuille créée portera le nom " & ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la renommer manuellement par la suite" Flg = True Exit For End If Next n
If Flg = False Then ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name > NomQueJeVeuxAttribuer End If
-- 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 !
Bonsoir,
Pour vérifier l'existence ou non d'une feuille d'un nom donné dans un classeur
en évitant une boucle, tu peux utiliser, parmi d'autres astuces possibles, ce
genre de code (sur une idée de Dana DeLouis) :
Sub NouvelleFeuille()
Dim NomFeuille$, test
NomFeuille = "MaFeuille"
With ThisWorkbook
On Error Resume Next
test = Len(.Sheets(NomFeuille).Name) 'ici, Excel boucle pour toi :)
On Error GoTo 0
.Sheets.Add.Name = _
IIf(Not CBool(test), NomFeuille, NomFeuille & .Sheets.Count)
End With
End Sub
FS
"ru-th" <ailleurs@nowhere> a écrit dans le message de
news:eG4K2G%23vDHA.2880@tk2msftngp13.phx.gbl...
Salut
un test sur l'existence d'une feuille nommée FeuilX ?
for each f in sheets
if f.name like "Feuil*" then exit sub
next
sheets.add
a+
rural thierry
"Emcy" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 030a01c3bfd2$f4d3bb60$a001280a@phx.gbl...
Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et
pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé
dans le classeur je crée d'abord la feuille en dernière position (Excel se
débrouille très bien tout seul pour éviter de faire des doublons avec les
noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le
nom que je voudrais attribuer n'y est pas déjà
J'ai besoin d'une variable n comme compteur et d'une variable booléenne
comme indicateur de présence
Flg = False
For n = 1 to ThisWorkbook.Sheets.Count - 1
(La dernière c'est la feuille que je viens de créer donc le test n'est pas
utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then
MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer &
vblf & "La feuille créée portera le nom " &
ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la
renommer manuellement par la suite"
Flg = True
Exit For
End If
Next n
If Flg = False Then
ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name > NomQueJeVeuxAttribuer
End If
--
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 !
Pour vérifier l'existence ou non d'une feuille d'un nom donné dans un classeur en évitant une boucle, tu peux utiliser, parmi d'autres astuces possibles, ce genre de code (sur une idée de Dana DeLouis) :
Sub NouvelleFeuille() Dim NomFeuille$, test NomFeuille = "MaFeuille" With ThisWorkbook On Error Resume Next test = Len(.Sheets(NomFeuille).Name) 'ici, Excel boucle pour toi :) On Error GoTo 0 .Sheets.Add.Name = _ IIf(Not CBool(test), NomFeuille, NomFeuille & .Sheets.Count) End With End Sub
FS
"ru-th" a écrit dans le message de news:eG4K2G%
Salut
un test sur l'existence d'une feuille nommée FeuilX ? for each f in sheets if f.name like "Feuil*" then exit sub next sheets.add
a+ rural thierry "Emcy" a écrit dans le message de news: 030a01c3bfd2$f4d3bb60$ Salut,
comment faire pour que ça ne m'ajoute qu'une feuille
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sheets.Add
End Sub
Bonjour
J'ai souvent ce problème car je crée des feuilles avec un nom particulier et pour éviter de déclencher une erreur en voulant atribuer un nom déjà utilisé dans le classeur je crée d'abord la feuille en dernière position (Excel se débrouille très bien tout seul pour éviter de faire des doublons avec les noms des feuilles créées)
Sheets.Add After:=Sheets(Sheets.Count)
Ensuite je fais une inspection de toutes les feuilles pour y déceler si le nom que je voudrais attribuer n'y est pas déjà J'ai besoin d'une variable n comme compteur et d'une variable booléenne comme indicateur de présence
Flg = False For n = 1 to ThisWorkbook.Sheets.Count - 1 (La dernière c'est la feuille que je viens de créer donc le test n'est pas utile)
if ThisWorkBook.Sheets(n).Name = NomQueJeVeuxAttribuer Then MsgBox"Un feuille porte déjà le nom : " & NomQueJeVeuxAttribuer & vblf & "La feuille créée portera le nom " & ThisWorkBook.Sheets(ThisWorBook.Sheets.Count).Name & vblf & "A vous de la renommer manuellement par la suite" Flg = True Exit For End If Next n
If Flg = False Then ThisWorkBook.Sheets(ThisWorkBook.Sheets.Count).Name > NomQueJeVeuxAttribuer End If
-- 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 !