OVH Cloud OVH Cloud

Erreur vba

5 réponses
Avatar
Jacquouille Le Gaulois
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s ouvre, je saisie
un nom en faisant attention au caractere speciaux, je fais ok et là
excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à partir de " & "ce
modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette commande " &
"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas valide !" &
vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne dépasse " & "pas
31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne contient " &
"aucun des caractères suivants :" & vbCrLf
msg = msg & " \,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur ne possède " &
"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

5 réponses

Avatar
Ellimac
Bonjour,

A priori ta procédure fonctionne. Voici le code simplifié :

Sub toto()
msg = "Vous allez créer une nouvelle commande à partir
de ce modèle " & _
vbCrLf & vbCrLf & "Comment voulez nommer cette
feuille ? "
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets
(Worksheets.Count)
ActiveSheet.Name = Rep
ActiveSheet.Shapes("Bouton3").Delete
Exit Sub
SaisieInvalide:
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas
valide !" & vbCrLf _
& vbCrLf & "-Vérifier que le nom de la feuille ne
dépasse " & _
"pas _31 caractères " & vbCrLf & "-Vérifier que le nom
de la feuille ne contient " & _
"aucun des caractères suivants :" & vbCrLf & " ,/ : ?
* [ ou ]" & vbCrLf _
& "-Vérifier qu'une feuille du classeur ne possède " & _
"pas déjà un nom identique"
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s
ouvre, je saisie

un nom en faisant attention au caractere speciaux, je
fais ok et là

excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à
partir de " & "ce

modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette
commande " &

"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets
(Worksheets.Count)

With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est
pas valide !" &

vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne
dépasse " & "pas

31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne
contient " &

"aucun des caractères suivants :" & vbCrLf
msg = msg & " ,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur ne
possède " &

"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

.



Avatar
Jacquouille Le Gaulois
J'ai essayé votre code et cela ne fonctionne pas quand je saisie par
exemple Commande 1 j'ai le message Saisie invalide


Bonjour,

A priori ta procédure fonctionne. Voici le code simplifié :

Sub toto()
msg = "Vous allez créer une nouvelle commande à partir
de ce modèle " & _
vbCrLf & vbCrLf & "Comment voulez nommer cette
feuille ? "
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets
(Worksheets.Count)
ActiveSheet.Name = Rep
ActiveSheet.Shapes("Bouton3").Delete
Exit Sub
SaisieInvalide:
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas
valide !" & vbCrLf _
& vbCrLf & "-Vérifier que le nom de la feuille ne
dépasse " & _
"pas _31 caractères " & vbCrLf & "-Vérifier que le nom
de la feuille ne contient " & _
"aucun des caractères suivants :" & vbCrLf & " ,/ : ?
* [ ou ]" & vbCrLf _
& "-Vérifier qu'une feuille du classeur ne possède " & _
"pas déjà un nom identique"
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s ouvre, je saisie
un nom en faisant attention au caractere speciaux, je fais ok et là
excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à partir de " & "ce
modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette commande " &
"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets (Worksheets.Count)
With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas valide !" &
vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne dépasse " & "pas
31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne contient " &
"aucun des caractères suivants :" & vbCrLf
msg = msg & " ,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur ne possède " &
"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

.



--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'


Avatar
Jacky
Ton code fonctionne à condition que:
Shapes("Bouton3").Delete
et
Sheets("Modèle")
Existent

Et que au moins 2 feuilles existent avec:
ActiveSheet.Delete
Sinon tu as un message d'erreur
Salutations
JJ

"Jacquouille Le Gaulois" a écrit dans le message
news:
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s ouvre, je saisie
un nom en faisant attention au caractere speciaux, je fais ok et là
excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à partir de " & "ce
modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette commande " &
"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas valide !" &
vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne dépasse " & "pas
31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne contient " &
"aucun des caractères suivants :" & vbCrLf
msg = msg & " ,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur ne possède " &
"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'



Avatar
Jacquouille Le Gaulois
Jacky a exprimé avec précision :
Ton code fonctionne à condition que:
Shapes("Bouton3").Delete
et
Sheets("Modèle")
Existent

Et que au moins 2 feuilles existent avec:
ActiveSheet.Delete
Sinon tu as un message d'erreur
Salutations
JJ

"Jacquouille Le Gaulois" a écrit dans le message
news:
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s ouvre, je saisie
un nom en faisant attention au caractere speciaux, je fais ok et là
excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à partir de " & "ce
modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette commande " &
"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est pas valide !" &
vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne dépasse " & "pas
31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne contient " &
"aucun des caractères suivants :" & vbCrLf
msg = msg & " ,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur ne possède " &
"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'



Merci j'ai trouvé l'erreur j'avais renommer mon bouton :-?

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'


Avatar
Ellimac
Bonjour,

Le plantage ne se fait pas sur le nom de la feuille il
doit donc s'agir du bouton.
Essaye "Bouton 3" avec un espace. Sinon dans ton modèle
renomme ton bouton "toto" par exemple.

Camille

-----Message d'origine-----
J'ai essayé votre code et cela ne fonctionne pas quand je
saisie par

exemple Commande 1 j'ai le message Saisie invalide


Bonjour,

A priori ta procédure fonctionne. Voici le code
simplifié :



Sub toto()
msg = "Vous allez créer une nouvelle commande à
partir


de ce modèle " & _
vbCrLf & vbCrLf & "Comment voulez nommer cette
feuille ? "
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets
(Worksheets.Count)
ActiveSheet.Name = Rep
ActiveSheet.Shapes("Bouton3").Delete
Exit Sub
SaisieInvalide:
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est
pas


valide !" & vbCrLf _
& vbCrLf & "-Vérifier que le nom de la feuille ne
dépasse " & _
"pas _31 caractères " & vbCrLf & "-Vérifier que le
nom


de la feuille ne contient " & _
"aucun des caractères suivants :" & vbCrLf & "
,/ : ?


* [ ou ]" & vbCrLf _
& "-Vérifier qu'une feuille du classeur ne possède "
& _


"pas déjà un nom identique"
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

Camille

-----Message d'origine-----
Bonjour à tous,

J'ai le code vba ci dessous, mais il ne marche pas :-@
Quand je clique sur mon bouton la fenetre de saisie s
ouvre, je saisie



un nom en faisant attention au caractere speciaux, je
fais ok et là



excel me dit que le nom n'est pas valide :'( pourquoi
Merci d'avance

Private Sub Bouton3_QuandClic()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle commande à
partir de " & "ce



modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez nommer cette
commande " &



"feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy after:=Worksheets
(Worksheets.Count)



With ActiveSheet
.Name = Rep
.Shapes("Bouton3").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de commande que vous avez tapé n'est
pas valide !" &



vbCrLf
msg = msg & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne
dépasse " & "pas



31 caractères" & vbCrLf
msg = msg & "-Vérifier que le nom de la feuille ne
contient " &



"aucun des caractères suivants :" & vbCrLf
msg = msg & " ,/ : ? * [ ou ]" & vbCrLf
msg = msg & "-Vérifier qu'une feuille du classeur
ne possède " &



"pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub

--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

.



--
("|`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

.