Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistreur de macro

8 réponses
Avatar
Flac
Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule pour
faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S

8 réponses

Avatar
Jacquouille
Bonsoir
Sans avoir traduit quoi que ce soit, je pense que la phrase litigieuse doit
s'écrire d'une seule traite.
Mets le curseur sur le _, efface, puis fais revenir le reste de la phrase
sur la même ligne.
On verra après
Bonne chance

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule pour
faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S



Avatar
Jacky
Bonsoir
VBA est fâché avec les ";" (point virgule)
Remplace
Formula1:="=EXACT(C5;""b"")"
par
Formula1:="=EXACT(C5,""b"")"

--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule pour
faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S



Avatar
Flac
Bonjour,
J'ai fait ce que tu m'as dit, ça fait la même chose.
J'ai aussi réécrit la syntaxe de la commande, quand je finis de l'écrire,
les majuscules se mettent à la bonne place, et la commande semble être
acceptée. Quand je la réexécute, la macro émet la même erreur (même pour les
autres commandes qui ne sont pas écrites sur 2 lignes).

Merci

Flac


"Jacquouille" a écrit dans le message de
news:
Bonsoir
Sans avoir traduit quoi que ce soit, je pense que la phrase litigieuse
doit s'écrire d'une seule traite.
Mets le curseur sur le _, efface, puis fais revenir le reste de la phrase
sur la même ligne.
On verra après
Bonne chance

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S







Avatar
Jacky
Bonsoir Homonyme

"L'espace + tiret bas" est justement pour aller la ligne pour pouvoir lire
un code qui est très long.
Cela n'a aucune incidence sur exécution du code.
Essaie:
'---------------
MsgBox "Nom: Jaques" & Chr(10) _
& "Pseudo: Jacquouille" & Chr(10) _
& "Pays: Belgique" & Chr(10) _
& "Ville: Liège " & Chr(10) _
& "Age: Très jeune"

puis
MsgBox "Nom: Jaques" & Chr(10) & "Pseudo: Jacquouille" & Chr(10) & "Pays:
Belgique" & Chr(10) & "Ville: Liège " & Chr(10) & "Age: Très jeune"
'---------------------
'
--
Salutations
JJ


"Jacquouille" a écrit dans le message de
news:
Bonsoir
Sans avoir traduit quoi que ce soit, je pense que la phrase litigieuse
doit s'écrire d'une seule traite.
Mets le curseur sur le _, efface, puis fais revenir le reste de la phrase
sur la même ligne.
On verra après
Bonne chance

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S







Avatar
Flac
Rebonjour,
Effectivement, en remplaçant le point-virgule par la virgule, ça fonctionne.
Merci

Salutations

Flac


"Jacky" a écrit dans le message de news:

Bonsoir
VBA est fâché avec les ";" (point virgule)
Remplace
Formula1:="=EXACT(C5;""b"")"
par
Formula1:="=EXACT(C5,""b"")"

--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S







Avatar
Jacky
Re...
Sans VBA
Pourquoi ne pas créer simplement une liste de validation qui ne contient que
la lettre "b" ??

--
Salutations
JJ


"Jacky" a écrit dans le message de news:

Bonsoir
VBA est fâché avec les ";" (point virgule)
Remplace
Formula1:="=EXACT(C5;""b"")"
par
Formula1:="=EXACT(C5,""b"")"

--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S







Avatar
Jacky
Re...
N'oublie pas de le dire à "Nito"

--
Salutations
JJ


"Flac" a écrit dans le message de news:
%
Rebonjour,
Effectivement, en remplaçant le point-virgule par la virgule, ça
fonctionne.
Merci

Salutations

Flac


"Jacky" a écrit dans le message de news:

Bonsoir
VBA est fâché avec les ";" (point virgule)
Remplace
Formula1:="=EXACT(C5;""b"")"
par
Formula1:="=EXACT(C5,""b"")"

--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de
macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune
suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S











Avatar
Flac
Salut,
Je vais la saluer avec plaisir.
Pour répondre à ta question, c'est ce que j'ai fait.
Le problème, c'est que je dois prévoir la suppression de données, tout en
conservant ma plage sans espaces.
Je ne peux utiliser la suppression de la ligne parce que
si je supprime la première ligne de la plage, elle n'est plus reconnue par
la suite.
J'utilise donc "effacer les données" puis je fais "couper/coller"
pour faire monter d'une ligne les autres données.
Ce faisant, après 3 ou 4 effacements de données, certaines perdent
leurs propriétés, comme la validation, les cellules protégées, etc.
c'est pourquoi je veux utiliser la macro dont on parle pour redonner à
toutes
les cellules les mêmes propriétés.

Pour en revenir à la macro, elle n'est pas satble.
Elle bogue souvent à la même place, même après avoir remplacer
le point-virgule par une virgule.
De plus, lorsque j'utilise la fonction Call Macro1 pour l'exécuter à
l'intérieur d'une autre macro, elle bogue encore à la même place.
Comme ce n'est pas moi qui vais utiliser ce fichier, je dois m'assurer
d'éliminer tous les bogues possibles.
Si quelqu'un a d'autres suggestions, je suis ouvert.

Merci

Flac

"Jacky" a écrit dans le message de news:

Re...
Sans VBA
Pourquoi ne pas créer simplement une liste de validation qui ne contient
que la lettre "b" ??

--
Salutations
JJ


"Jacky" a écrit dans le message de news:

Bonsoir
VBA est fâché avec les ";" (point virgule)
Remplace
Formula1:="=EXACT(C5;""b"")"
par
Formula1:="=EXACT(C5,""b"")"

--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Excel
J'ai enregistré la macro ci-dessous en utilisant l'enregistreur de
macro.
Pourquoi, quand je veux la faire exécuter, ai-je le message suivant:
"Erreur d'exécution '1004': erreur définie par l'application ou par
l'objet"
en ayant, quand je clique sur débogague, l'inscription en jaune
suivante:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"

Merci à l'avance

Flac


Sub Macro1()
Sheets("nom").Select
Range("C5:C274").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=EXACT(C5;""b"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = " RESTRICTION"
.ErrorTitle = " ERREUR"
.InputMessage = _
"Vous devez obligatoirement taper" & Chr(10) & "un b minuscule
pour faire le crochet."
.ErrorMessage = _
"Un seul caractère est permis et ce doit" & Chr(10) & "être la
lettre b minuscule."
.ShowInput = True
.ShowError = True
End With
End S