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

poser une question automatique dans un chiffre est donné en A1

11 réponses
Avatar
Nicoh
Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse à mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite encore et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1 un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box, je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel article ?
Si non, alors une deuxième question est posée : le texte est-il identique ?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh

10 réponses

1 2
Avatar
Daniel
Bonsoir.
Mets la macro suivante dans le code de la feuille concernée. Elle ne se
déclenche que lorsque la valeur de la cellule A1 est changée.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rep As String
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" Then
rep = InputBox("Est-ce un nouvel article ?")
If UCase(rep) = "NON" Then
rep = InputBox("Le texte est-il identique ?")
If UCase(rep) = "NON" Then
[B1].Select
End If
Exit Sub
Else
ActiveSheet.Copy after:=Sheets(Sheets.Count)
End If
End If
End Sub

Cordialement.
Daniel
"Nicoh" a écrit dans le message de news:

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1 un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box, je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel article ?
Si non, alors une deuxième question est posée : le texte est-il identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh


Avatar
Daniel
Il est plus correct de tester le "non" et le "oui" :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rep As String
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" Then
rep = InputBox("Est-ce un nouvel article ?")
If UCase(rep) = "NON" Then
rep = InputBox("Le texte est-il identique ?")
If UCase(rep) = "NON" Then
[B1].Select
ElseIf UCase(rep) <> "OUI" Then
MsgBox "Erreur de saisie"
End If
Exit Sub
ElseIf UCase(rep) = "OUI" Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Else
MsgBox "Erreur de saisie"
End If
End If

Daniel
"Daniel" a écrit dans le message de news:
OOe$
Bonsoir.
Mets la macro suivante dans le code de la feuille concernée. Elle ne se
déclenche que lorsque la valeur de la cellule A1 est changée.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rep As String
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" Then
rep = InputBox("Est-ce un nouvel article ?")
If UCase(rep) = "NON" Then
rep = InputBox("Le texte est-il identique ?")
If UCase(rep) = "NON" Then
[B1].Select
End If
Exit Sub
Else
ActiveSheet.Copy after:=Sheets(Sheets.Count)
End If
End If
End Sub

Cordialement.
Daniel
"Nicoh" a écrit dans le message de news:

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1
un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box, je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel article
?
Si non, alors une deuxième question est posée : le texte est-il identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh






Avatar
Jacky
Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4, Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4, Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1 un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box, je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel article ?
Si non, alors une deuxième question est posée : le texte est-il identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh


Avatar
Nicoh
Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui copie la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4, Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4, Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1 un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box, je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel article ?
Si non, alors une deuxième question est posée : le texte est-il identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh







Avatar
Jacky
Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4, Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1
un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh









Avatar
Nicoh
Rebonsoir,

J'ai adapté la macro à mon cas précis, ce qui fonctionne toujours très bien.
Par contre, quand je supprime le chiffre saisi en A1, la question m'est
toujours posée. Comment eut-on l'éviter ? un peu comme "ignorer si la cellule
est vide"
Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on avoir un
seul code qui prévoit toutes les cellules dans lesquelles on va l'utiliser ?
J'espère être clair sur ce coup là !!

Pour ce qui est du code qui se copie, ça m'arrange, j'ai 7 macros dans la
même feuille qui doivent se copier.

Bonne nuit

Nicoh


Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4, Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en A1
un
département français (format cellule 00#) comme 001, je souhaite qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour le
moment , je souhaite que la feuille active se copie et s'ouvre toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh














Avatar
Jacky
Re.....
A modifier
'--------
If Not Intersect(Target, Range("a1,b8,d15")) Is Nothing And Target <> ""
Then
'----------

Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on avoir
un seul code


Inserer dans le "Range()" les cellules concernées
........Range("a1,b8,d15,......,.......,.......")..........
--
Salutations
JJ



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

Rebonsoir

J'ai adapté la macro à mon cas précis, ce qui fonctionne toujours très
bien.
Par contre, quand je supprime le chiffre saisi en A1, la question m'est
toujours posée. Comment eut-on l'éviter ? un peu comme "ignorer si la
cellule
est vide"
Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on avoir
un
seul code qui prévoit toutes les cellules dans lesquelles on va l'utiliser
?
J'espère être clair sur ce coup là !!

Pour ce qui est du code qui se copie, ça m'arrange, j'ai 7 macros dans la
même feuille qui doivent se copier.

Bonne nuit

Nicoh


Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui
copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4,
Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en
réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables
de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en
A1
un
département français (format cellule 00#) comme 001, je souhaite
qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo
box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour
le
moment , je souhaite que la feuille active se copie et s'ouvre
toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh
















Avatar
Nicoh
Bonjour Jacky,

La dernière version fonctionne très bien, par contre, quand j'efface le
contenu de la cellule j'ai un message d'erreur "incompatibilité de type 13".
Y-a-t-il un remède pour éviter ce désagrément sachant que le résultat est
celui escompté !

D'avance merci pour ton aide précieuse,

nicoh


Re.....
A modifier
'--------
If Not Intersect(Target, Range("a1,b8,d15")) Is Nothing And Target <> ""
Then
'----------

Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on avoir
un seul code


Inserer dans le "Range()" les cellules concernées
.........Range("a1,b8,d15,......,.......,.......")..........
--
Salutations
JJ



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

Rebonsoir

J'ai adapté la macro à mon cas précis, ce qui fonctionne toujours très
bien.
Par contre, quand je supprime le chiffre saisi en A1, la question m'est
toujours posée. Comment eut-on l'éviter ? un peu comme "ignorer si la
cellule
est vide"
Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on avoir
un
seul code qui prévoit toutes les cellules dans lesquelles on va l'utiliser
?
J'espère être clair sur ce coup là !!

Pour ce qui est du code qui se copie, ça m'arrange, j'ai 7 macros dans la
même feuille qui doivent se copier.

Bonne nuit

Nicoh


Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui
copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4,
Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon cas
particulier l'ensemble des macros que vous avez pu proposer en
réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre le
fonctionnement d'une macro et surtout qui ont toujours été capables
de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre en
A1
un
département français (format cellule 00#) comme 001, je souhaite
qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo
box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui, pour
le
moment , je souhaite que la feuille active se copie et s'ouvre
toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur aide.

Nicoh





















Avatar
Jacky
Re.....
contenu de la cellule j'ai un message d'erreur "incompatibilité de type
13".
Parce que tu selectionnes certainement plusieurs cellules.


Rajoutes ceci en début de code, et la situation devrait se rétablir.
'-----
If Target.Count > 1 Then Exit Sub
'--------
Salutations
JJ


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

Bonjour Jacky,

La dernière version fonctionne très bien, par contre, quand j'efface le
contenu de la cellule j'ai un message d'erreur "incompatibilité de type
13".
Y-a-t-il un remède pour éviter ce désagrément sachant que le résultat est
celui escompté !

D'avance merci pour ton aide précieuse,

nicoh


Re.....
A modifier
'--------
If Not Intersect(Target, Range("a1,b8,d15")) Is Nothing And Target <> ""
Then
'----------

Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on
avoir
un seul code


Inserer dans le "Range()" les cellules concernées
.........Range("a1,b8,d15,......,.......,.......")..........
--
Salutations
JJ



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

Rebonsoir

J'ai adapté la macro à mon cas précis, ce qui fonctionne toujours très
bien.
Par contre, quand je supprime le chiffre saisi en A1, la question m'est
toujours posée. Comment eut-on l'éviter ? un peu comme "ignorer si la
cellule
est vide"
Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on
avoir
un
seul code qui prévoit toutes les cellules dans lesquelles on va
l'utiliser
?
J'espère être clair sur ce coup là !!

Pour ce qui est du code qui se copie, ça m'arrange, j'ai 7 macros dans
la
même feuille qui doivent se copier.

Bonne nuit

Nicoh


Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le
code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle
me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui
copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4,
Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon
cas
particulier l'ensemble des macros que vous avez pu proposer en
réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre
le
fonctionnement d'une macro et surtout qui ont toujours été
capables
de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable
de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre
en
A1
un
département français (format cellule 00#) comme 001, je souhaite
qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo
box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui,
pour
le
moment , je souhaite que la feuille active se copie et s'ouvre
toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur
aide.

Nicoh























Avatar
Nicoh
Bonsoir Jacky,

Je te remercie à priori ça fonctionne parfaitement.
J'en profite pour te joindre une autre macro développée sur ce forum pour
laquelle j'ai la même erreur "imcompatibilité de type"
Sub repCol()
Dim c As Range, i As Long, cpt As Long
ligne = 0
For Each c In [EU18:EU27]
For i = 1 To c
[EV18].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
End Sub

J'ai essayé ceci :
If Offset.count > 1 then Exit Sub en début de code
Mais ça ne fonctionne pas !


Re.....
contenu de la cellule j'ai un message d'erreur "incompatibilité de type
13".
Parce que tu selectionnes certainement plusieurs cellules.


Rajoutes ceci en début de code, et la situation devrait se rétablir.
'-----
If Target.Count > 1 Then Exit Sub
'--------
Salutations
JJ


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

Bonjour Jacky,

La dernière version fonctionne très bien, par contre, quand j'efface le
contenu de la cellule j'ai un message d'erreur "incompatibilité de type
13".
Y-a-t-il un remède pour éviter ce désagrément sachant que le résultat est
celui escompté !

D'avance merci pour ton aide précieuse,

nicoh


Re.....
A modifier
'--------
If Not Intersect(Target, Range("a1,b8,d15")) Is Nothing And Target <> ""
Then
'----------

Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on
avoir
un seul code


Inserer dans le "Range()" les cellules concernées
.........Range("a1,b8,d15,......,.......,.......")..........
--
Salutations
JJ



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

Rebonsoir

J'ai adapté la macro à mon cas précis, ce qui fonctionne toujours très
bien.
Par contre, quand je supprime le chiffre saisi en A1, la question m'est
toujours posée. Comment eut-on l'éviter ? un peu comme "ignorer si la
cellule
est vide"
Sachant que je dois utiliser le code en A1, B8, D15, ... (par exemple),
dois-je mettre le code autant de fois que j'en ai besoin ou peut-on
avoir
un
seul code qui prévoit toutes les cellules dans lesquelles on va
l'utiliser
?
J'espère être clair sur ce coup là !!

Pour ce qui est du code qui se copie, ça m'arrange, j'ai 7 macros dans
la
même feuille qui doivent se copier.

Bonne nuit

Nicoh


Re.....
Pour la suite.......avant de t'embarquer dans le navire ;o)
Prête attention, tu as demandé une copie de feuille, ce que fait le
code.
Mais n'oublies que le code de la feuille est copié avec.
--
Salutations
JJ



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

Bonsoir Jacky,

Merci pour ta réponse. Je l'ai testée sur une feuille vierge, elle
me
convient parfaitement.
Je reviendrais sur le forum plus tard pour la suite de la macro qui
copie
la
feuille car c'est très complexe et je dois réfléchir à ce dont j'ai
besoins
précisément.

Merci et bonne soirée,

Nicoh
P.S : Merci également à Daniel pour sa réponse.


Bonsoir,

Ceci peut-être
'------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1]) Is Nothing Then
question = MsgBox("Est-ce un nouvel article ?", 4,
Application.UserName)
If question = 7 Then
question = MsgBox("Le texte est-il identique ?", 4,
Application.UserName)
If question = 7 Then [b1].Select: Exit Sub
Else
x = ActiveSheet.Name
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Copie_de_" & x
End If
End If
End Sub
'-----------
Bon courage
--
Salutations
JJ



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

Bonsoir à tous,

Depuis que j'ai découvert le forum, j'ai appris à adapter à mon
cas
particulier l'ensemble des macros que vous avez pu proposer en
réponse
à
mes
questions. Je remercie tous ceux qui ont pu m'aider à comprendre
le
fonctionnement d'une macro et surtout qui ont toujours été
capables
de
trouver une solution à mes problématiques.
Malheureusement, je suis toujours demandeur car je suis incapable
de
créer
une macro complexe à partir de zéro . C'est pourquoi je sollicite
encore
et
encore votre aide.

Ma question cette fois est la suivante : quand un opérateur entre
en
A1
un
département français (format cellule 00#) comme 001, je souhaite
qu'une
fenêtre apparaisse (peut-être appelle-t-on cela list box ou combo
box,
je
n'en sais rien).

Dans la fenêtre, doit-être posée une question : est-ce un nouvel
article ?
Si non, alors une deuxième question est posée : le texte est-il
identique
?
Si oui, alors la fenêtre se referme et il ne se passe rien.
Si non, alors le curseur doit aller obligatoirement en B1pour que
l'opérateut saisisse le nouveau texte.
si la réponse à la première question (nouvel article) est oui,
pour
le
moment , je souhaite que la feuille active se copie et s'ouvre
toujours
dans
le même classeur mais à la fin. Ma demande sera ensuite bien plus
complexe,
mais je dois y réfléchir pour poser ma question de façon claire.

Je remercie par avance tous ceux qui pourront m'apporter leur
aide.

Nicoh




























1 2