Bonjour à vous...!
Ci-dessous joint, le début de mon code.
Je souhaiterais qu'avant le MsgBox, un controle soit effectué.
A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse
avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la
macro.
2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec "
valeur déjà saisie " avec OK et arrêt de la macro.
Sinon roule la macro....
Dis Monsieur... c'est faisable ?
D'avance merci aux mèdecins qui se pencheront sur mon chevet.
( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se
lance pas du tout.
Mets ce code avant ton msgbox
With Worksheets("Saisie")
If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster
Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2()
If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Range("E4:G33").Select
Selection.Copy
Range("Q4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Range("C4").Select
Application.CutCopyMode = False
With Worksheets("Saisie")
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1,
0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1,
0)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de
la feuille "Feuil1" par le nom réel de ton application.
'---------------------------------------------
Sub copieSGE_E2()
With Worksheets("Feuil1")
If MsgBox("ETES VOUS SUR DE VOULOIR " & _
"VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Application.EnableEvents = False
Application.ScreenUpdating = False
.Range("E4:G33").Copy
.Range("Q4").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, _
SkipBlanks:úlse, _
Transpose:úlse
.Range("E4").Select
End If
End With
Application.CutCopyMode = False
With Worksheets("Saisie")
If .Range("C3") <= .Range("K6") Then
MsgBox "valeur déjà saisie"
Else
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"PLG" <PLG@discussions.microsoft.com> a écrit dans le message de groupe de discussion :
40186741-8CEC-49B3-B811-626902ADFF63@microsoft.com...
Bonjour à vous...!
Ci-dessous joint, le début de mon code.
Je souhaiterais qu'avant le MsgBox, un controle soit effectué.
A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse
avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la
macro.
2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec "
valeur déjà saisie " avec OK et arrêt de la macro.
Sinon roule la macro....
Dis Monsieur... c'est faisable ?
D'avance merci aux mèdecins qui se pencheront sur mon chevet.
( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se
lance pas du tout.
Mets ce code avant ton msgbox
With Worksheets("Saisie")
If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster
Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2()
If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Range("E4:G33").Select
Selection.Copy
Range("Q4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("C4").Select
Application.CutCopyMode = False
With Worksheets("Saisie")
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1,
0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1,
0)
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
PLG
Merci à toi Je suis obligé de partir, je testerai cela à mon retour. Je suis ( sur le coup ) un peu perdu car j'avais enlevé des lignes de code pour pas faire trop lourd, faut que je vois où les insérer exactement dans ce que tu me proposes. Si je broute je te joindrai le fichier ( si pas trop lourd )
merci encore et à +
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
Merci à toi
Je suis obligé de partir, je testerai cela à mon retour.
Je suis ( sur le coup ) un peu perdu car j'avais enlevé des lignes de code
pour pas faire trop lourd, faut que je vois où les insérer exactement dans ce
que tu me proposes.
Si je broute je te joindrai le fichier ( si pas trop lourd )
merci encore et à +
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de
la feuille "Feuil1" par le nom réel de ton application.
'---------------------------------------------
Sub copieSGE_E2()
With Worksheets("Feuil1")
If MsgBox("ETES VOUS SUR DE VOULOIR " & _
"VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Application.EnableEvents = False
Application.ScreenUpdating = False
.Range("E4:G33").Copy
.Range("Q4").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, _
SkipBlanks:úlse, _
Transpose:úlse
.Range("E4").Select
End If
End With
Application.CutCopyMode = False
With Worksheets("Saisie")
If .Range("C3") <= .Range("K6") Then
MsgBox "valeur déjà saisie"
Else
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"PLG" <PLG@discussions.microsoft.com> a écrit dans le message de groupe de discussion :
40186741-8CEC-49B3-B811-626902ADFF63@microsoft.com...
Bonjour à vous...!
Ci-dessous joint, le début de mon code.
Je souhaiterais qu'avant le MsgBox, un controle soit effectué.
A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse
avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la
macro.
2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec "
valeur déjà saisie " avec OK et arrêt de la macro.
Sinon roule la macro....
Dis Monsieur... c'est faisable ?
D'avance merci aux mèdecins qui se pencheront sur mon chevet.
( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se
lance pas du tout.
Mets ce code avant ton msgbox
With Worksheets("Saisie")
If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster
Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2()
If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Range("E4:G33").Select
Selection.Copy
Range("Q4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("C4").Select
Application.CutCopyMode = False
With Worksheets("Saisie")
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1,
0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1,
0)
Merci à toi Je suis obligé de partir, je testerai cela à mon retour. Je suis ( sur le coup ) un peu perdu car j'avais enlevé des lignes de code pour pas faire trop lourd, faut que je vois où les insérer exactement dans ce que tu me proposes. Si je broute je te joindrai le fichier ( si pas trop lourd )
merci encore et à +
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
PLG
Re.. bonjour michdenis Bon..... pffff... j'ai mis un peu de temps à insérer toutes les lignes de codes que j'avais virées. C'est avec ces 2 là que je me suis planté.... Application.EnableEvents = False Application.ScreenUpdating = False Application.EnableEvents = True Application.ScreenUpdating = True
Mais bon ça m'a fait bosser... et maintenant... CA MARCHE !
Merci encore à toi et certainement à un de ces 4. Bonne soirée
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
Re.. bonjour michdenis
Bon..... pffff... j'ai mis un peu de temps à insérer toutes les lignes de
codes que j'avais virées.
C'est avec ces 2 là que je me suis planté....
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.EnableEvents = True
Application.ScreenUpdating = True
Mais bon ça m'a fait bosser... et maintenant...
CA MARCHE !
Merci encore à toi et certainement à un de ces 4.
Bonne soirée
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de
la feuille "Feuil1" par le nom réel de ton application.
'---------------------------------------------
Sub copieSGE_E2()
With Worksheets("Feuil1")
If MsgBox("ETES VOUS SUR DE VOULOIR " & _
"VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Application.EnableEvents = False
Application.ScreenUpdating = False
.Range("E4:G33").Copy
.Range("Q4").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, _
SkipBlanks:úlse, _
Transpose:úlse
.Range("E4").Select
End If
End With
Application.CutCopyMode = False
With Worksheets("Saisie")
If .Range("C3") <= .Range("K6") Then
MsgBox "valeur déjà saisie"
Else
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"PLG" <PLG@discussions.microsoft.com> a écrit dans le message de groupe de discussion :
40186741-8CEC-49B3-B811-626902ADFF63@microsoft.com...
Bonjour à vous...!
Ci-dessous joint, le début de mon code.
Je souhaiterais qu'avant le MsgBox, un controle soit effectué.
A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse
avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la
macro.
2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec "
valeur déjà saisie " avec OK et arrêt de la macro.
Sinon roule la macro....
Dis Monsieur... c'est faisable ?
D'avance merci aux mèdecins qui se pencheront sur mon chevet.
( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se
lance pas du tout.
Mets ce code avant ton msgbox
With Worksheets("Saisie")
If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie":
Exit Sub
End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster
Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2()
If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then
Exit Sub
Else
Range("E4:G33").Select
Selection.Copy
Range("Q4").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("C4").Select
Application.CutCopyMode = False
With Worksheets("Saisie")
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1,
0)
.Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1,
0)
Re.. bonjour michdenis Bon..... pffff... j'ai mis un peu de temps à insérer toutes les lignes de codes que j'avais virées. C'est avec ces 2 là que je me suis planté.... Application.EnableEvents = False Application.ScreenUpdating = False Application.EnableEvents = True Application.ScreenUpdating = True
Mais bon ça m'a fait bosser... et maintenant... CA MARCHE !
Merci encore à toi et certainement à un de ces 4. Bonne soirée
"michdenis" wrote:
Bonjour,
Essaie ceci :
Dans la procédure, tu dois remplacer le nom de la feuille "Feuil1" par le nom réel de ton application.
'--------------------------------------------- Sub copieSGE_E2()
With Worksheets("Feuil1") If MsgBox("ETES VOUS SUR DE VOULOIR " & _ "VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Application.EnableEvents = False Application.ScreenUpdating = False .Range("E4:G33").Copy .Range("Q4").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlNone, _ SkipBlanks:úlse, _ Transpose:úlse .Range("E4").Select End If End With Application.CutCopyMode = False With Worksheets("Saisie") If .Range("C3") <= .Range("K6") Then MsgBox "valeur déjà saisie" Else .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0) End If End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------------
"PLG" a écrit dans le message de groupe de discussion :
Bonjour à vous...! Ci-dessous joint, le début de mon code. Je souhaiterais qu'avant le MsgBox, un controle soit effectué. A savoir : Si la cellule C3 est = à la cellule K6, une MsgBox apparaisse avec le message " valeur déjà saisie " avec un bouton OK et l'arrêt de la macro. 2ème controle : Si la cellule C3 est < à la cellule K6, une MsgBox avec " valeur déjà saisie " avec OK et arrêt de la macro. Sinon roule la macro.... Dis Monsieur... c'est faisable ? D'avance merci aux mèdecins qui se pencheront sur mon chevet. ( j'ai essayé des trucs, mais étant fort doué en VBA.... z'avez compris ! )
FdeCourt m'a donné cette soluce, mais cela ne fonctionne pas, la macro ne se lance pas du tout.
Mets ce code avant ton msgbox With Worksheets("Saisie") If .Range("C3") = .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub If .Range("C3") < .Range("K6") Then MsgBox "valeur déjà saisie": Exit Sub End With
Comme je n'ai plus de nouvelle de lui, je me permets de re poster Merci à Daniel, MichDenis... ou pourquoi pas FdeCourt...
Sub copieSGE_E2() If MsgBox("ETES VOUS SUR DE VOULOIR VALIDER LA SAISIE ?", vbYesNo) = vbNo Then Exit Sub Else Range("E4:G33").Select Selection.Copy Range("Q4").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Range("C4").Select Application.CutCopyMode = False With Worksheets("Saisie") .Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0) .Range("D4:G4").Copy Worksheets("1").Range("D65000").End(xlUp).Offset(1, 0) .Range("J3:N3").Copy Worksheets("1").Range("L65000").End(xlUp).Offset(1, 0)