poser une question automatique dans un chiffre est donné en A1
11 réponses
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.
Re... Je vois pas trop....... Je dirais que [EU18:EU27] doit obligatoirement être numérique.
-- Salutations JJ
"Nicoh" a écrit dans le message de news:
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
Re...
Je vois pas trop.......
Je dirais que [EU18:EU27] doit obligatoirement être numérique.
--
Salutations
JJ
"Nicoh" <Nicoh@discussions.microsoft.com> a écrit dans le message de news:
BDA30711-A9C2-4F7C-83A4-9A69CF47BABB@microsoft.com...
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" <Nicoh@discussions.microsoft.com> a écrit dans le message de
news:
2BC65F61-70BF-4AC0-A445-B2610115753C@microsoft.com...
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" <Nicoh@discussions.microsoft.com> a écrit dans le message de
news:
95671A17-3500-4258-8DEA-0AC722AC1B37@microsoft.com...
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" <Nicoh@discussions.microsoft.com> a écrit dans le message
de
news:
9D582865-A230-44CD-9734-3111BDF99148@microsoft.com...
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" <Nicoh@discussions.microsoft.com> a écrit dans le
message
de
news:
520BFA35-DB8D-4F6A-B9A7-D6EF03354E6E@microsoft.com...
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.
Re... Je vois pas trop....... Je dirais que [EU18:EU27] doit obligatoirement être numérique.
-- Salutations JJ
"Nicoh" a écrit dans le message de news:
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.