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

Petit ajout sur macro ne fonctionne pas

3 réponses
Avatar
PLG
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)

3 réponses

Avatar
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)
Avatar
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)



Avatar
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)