Salut Nico
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Exit sub 'ici on le fait sortir de la procédure aprés avoir copié
End If
youky
Salut Nico
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Exit sub 'ici on le fait sortir de la procédure aprés avoir copié
End If
youky
Salut Nico
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Exit sub 'ici on le fait sortir de la procédure aprés avoir copié
End If
youky
Private Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12 mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Private Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12 mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Private Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12 mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Youky,
Je suis désolé mais je pense avoir mal expliqué ma problématique et viens
de
comprendre que j'ai demandé, il me semble, le contraire du résultat que je
veux obtenir.
Tout d'abord, j'espère que tu es patient car mon niveau en VBA est proche
de
zéro. J'espère que tu voudras bien continuer à m'aider.
En fait je veux avoir une copie de la feuille 1 quand en BA16 on répond
oui
à la question de la facturation. Ainsi j'ai 2 feuilles avec feuille 1 > feuille2.
Puis, je reviens sur la feuille 1 (je pense que mon erreur dans
l'explication est là), en BC16 je répond oui à la question et là, il ne
doit
pas y avoir de copie. Pour le moment, je dirais qu'il ne doit rien se
passer,
cela se compliquera ensuite !
J'espère que c'est maintenant plus clair et suis vraiment désolé de
t'avoir
mal orienté.
D'avance merci pour ton éventuelle réponse.
NicohPrivate Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12
mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Youky,
Je suis désolé mais je pense avoir mal expliqué ma problématique et viens
de
comprendre que j'ai demandé, il me semble, le contraire du résultat que je
veux obtenir.
Tout d'abord, j'espère que tu es patient car mon niveau en VBA est proche
de
zéro. J'espère que tu voudras bien continuer à m'aider.
En fait je veux avoir une copie de la feuille 1 quand en BA16 on répond
oui
à la question de la facturation. Ainsi j'ai 2 feuilles avec feuille 1 > feuille2.
Puis, je reviens sur la feuille 1 (je pense que mon erreur dans
l'explication est là), en BC16 je répond oui à la question et là, il ne
doit
pas y avoir de copie. Pour le moment, je dirais qu'il ne doit rien se
passer,
cela se compliquera ensuite !
J'espère que c'est maintenant plus clair et suis vraiment désolé de
t'avoir
mal orienté.
D'avance merci pour ton éventuelle réponse.
Nicoh
Private Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12
mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Youky,
Je suis désolé mais je pense avoir mal expliqué ma problématique et viens
de
comprendre que j'ai demandé, il me semble, le contraire du résultat que je
veux obtenir.
Tout d'abord, j'espère que tu es patient car mon niveau en VBA est proche
de
zéro. J'espère que tu voudras bien continuer à m'aider.
En fait je veux avoir une copie de la feuille 1 quand en BA16 on répond
oui
à la question de la facturation. Ainsi j'ai 2 feuilles avec feuille 1 > feuille2.
Puis, je reviens sur la feuille 1 (je pense que mon erreur dans
l'explication est là), en BC16 je répond oui à la question et là, il ne
doit
pas y avoir de copie. Pour le moment, je dirais qu'il ne doit rien se
passer,
cela se compliquera ensuite !
J'espère que c'est maintenant plus clair et suis vraiment désolé de
t'avoir
mal orienté.
D'avance merci pour ton éventuelle réponse.
NicohPrivate Sub CommandButton1_Click()
'le dim en tete de macro
Dim impr(4) As Boolean
'ton for ou while ou autres boucle qui se fait 4 fois
boucle = boucle + 1 ' on incrémente à chaque passage
'avant la copie on vérifie si toujours false
If impr(boucle) = False Then
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True
End If
'
'
'
End Sub
ou encore si tu ne fait pas de boucle mais tout à la suite
Dim impr(4) As Boolean 'ici en plus
If Not Intersect(Target, Range("ba16:cc16")) Is Nothing Then
question = MsgBox("Est-ce un NEW ?", vbYesNo,
Application.UserName)
If question = vbYes Then
question = MsgBox("La facturation se fait-elle sur 12
mois
?", 4, Application.UserName)
If question = 7 Then
Cells(Target.Row - 1, Target.Column) = "NEW": Exit Sub
Else
boucle=boucle+1 'ici en plus
If impr(boucle) = False Then 'ici en plus
ActiveSheet.Copy after:=Sheets(Sheets.Count)
impr(boucle) = True 'ici en plus
End If 'ici en plus
End If
End If
End If
'et la suite, remettre pareil sauf le dim de départ
Youky
Bonsoir Youky,
Je pense que tu dois être largement capable de réaliser une macro qui
répond
à ma demande, mais le plus dur est de me faire comprendre. Je vais essayer
d'illustrer ma demande par un exemple simple que j'adapterais ensuite à ma
macro initiale.
En feuille1, travaillons sur la ligne 1.
En A1 je rentre un chiffre compris entre 1 et 10, disons 1. Alors, la
feuille 1 se copie et la copie obtenue s'appelle feuille 2.
En B1 de la feuille 1, je rentre 11, il ne se passe donc rien.
En C1 de la feuille 1, je rentre 3, alors la feuille 1 ne se copie pas,
mais
la cellule C1 se copie uniquement en C1 de la feuille 2.
Considérons maintenant la ligne 3 avec A3=2, alors la feuille 1 ne se
copie
pas mais la cellule A3 se copie en feuille 2 en A3=2
Au final j'ai donc deux feuilles : feuille 1 où A1=1, B1, C1=3 et A3=2
;
feuille 2 A1=1, C1=3 et A3=2.
La feuille 1 ne se copie qu'une seule et unique fois : la première fois où
dans les deux plages considérées (ligne 1 et ligne 3) la condition
(chiffre
compris entre 1 et 10) est remplie.
Autrement dit, si on reprend l'exemple mais dans le sens inverse, la
feuille
se copiera quand on commence à remplir A3 (=2) et ne se copie plus
ensuite.
En espérant que cet exemple soit plus compréhensible, sinon, je ne sais
pas
comment je vais faire.
en tout cas merci pour ton aide et ton implication à mon cas,
Nicoh
Bonsoir Youky,
Je pense que tu dois être largement capable de réaliser une macro qui
répond
à ma demande, mais le plus dur est de me faire comprendre. Je vais essayer
d'illustrer ma demande par un exemple simple que j'adapterais ensuite à ma
macro initiale.
En feuille1, travaillons sur la ligne 1.
En A1 je rentre un chiffre compris entre 1 et 10, disons 1. Alors, la
feuille 1 se copie et la copie obtenue s'appelle feuille 2.
En B1 de la feuille 1, je rentre 11, il ne se passe donc rien.
En C1 de la feuille 1, je rentre 3, alors la feuille 1 ne se copie pas,
mais
la cellule C1 se copie uniquement en C1 de la feuille 2.
Considérons maintenant la ligne 3 avec A3=2, alors la feuille 1 ne se
copie
pas mais la cellule A3 se copie en feuille 2 en A3=2
Au final j'ai donc deux feuilles : feuille 1 où A1=1, B1, C1=3 et A3=2
;
feuille 2 A1=1, C1=3 et A3=2.
La feuille 1 ne se copie qu'une seule et unique fois : la première fois où
dans les deux plages considérées (ligne 1 et ligne 3) la condition
(chiffre
compris entre 1 et 10) est remplie.
Autrement dit, si on reprend l'exemple mais dans le sens inverse, la
feuille
se copiera quand on commence à remplir A3 (=2) et ne se copie plus
ensuite.
En espérant que cet exemple soit plus compréhensible, sinon, je ne sais
pas
comment je vais faire.
en tout cas merci pour ton aide et ton implication à mon cas,
Nicoh
Bonsoir Youky,
Je pense que tu dois être largement capable de réaliser une macro qui
répond
à ma demande, mais le plus dur est de me faire comprendre. Je vais essayer
d'illustrer ma demande par un exemple simple que j'adapterais ensuite à ma
macro initiale.
En feuille1, travaillons sur la ligne 1.
En A1 je rentre un chiffre compris entre 1 et 10, disons 1. Alors, la
feuille 1 se copie et la copie obtenue s'appelle feuille 2.
En B1 de la feuille 1, je rentre 11, il ne se passe donc rien.
En C1 de la feuille 1, je rentre 3, alors la feuille 1 ne se copie pas,
mais
la cellule C1 se copie uniquement en C1 de la feuille 2.
Considérons maintenant la ligne 3 avec A3=2, alors la feuille 1 ne se
copie
pas mais la cellule A3 se copie en feuille 2 en A3=2
Au final j'ai donc deux feuilles : feuille 1 où A1=1, B1, C1=3 et A3=2
;
feuille 2 A1=1, C1=3 et A3=2.
La feuille 1 ne se copie qu'une seule et unique fois : la première fois où
dans les deux plages considérées (ligne 1 et ligne 3) la condition
(chiffre
compris entre 1 et 10) est remplie.
Autrement dit, si on reprend l'exemple mais dans le sens inverse, la
feuille
se copiera quand on commence à remplir A3 (=2) et ne se copie plus
ensuite.
En espérant que cet exemple soit plus compréhensible, sinon, je ne sais
pas
comment je vais faire.
en tout cas merci pour ton aide et ton implication à mon cas,
Nicoh