steph_20
Nouveau membre
Bonjour,
j'ai réalisé une macro qui me permet de selectionner des données à partir d'une plage de cellules et les copier dans des plages de cellules bien données;mais à une condition:
La macro vérifie que le numero facture n'existe pas déja:
si oui la macro s'exécute.
Si non la macro ne s'exécute pas et on sort du programme.
La macro marche sans probleme;mais je souhaite que dans le cas où la macro ne s'exécute pas,je veux que la macro affiche ce message à l'écran:"ATTENTION!!! Ce N°_Facture existe déja!" avant de sortir du programme.
Comment faire car j'ai essayé mais je n'arrive pas! voici ce que j'ai trouvé:
[cpp]Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+Z
[cpp]Sheets("Retraitement_relevé").Select
Range("A6:E6").Select
Selection.Copy
Select Case Range("B3").Value
Case 1
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00001").Select
' Définition de la plage a regarder
Dim MaPlage As Range
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on affiche "ATTENTION!!! Ce N°_Facture existe déja!" et on sort du programme
If Cell.Value = Num_Facture Then
MsgBox "ATTENTION!!! Ce N°_Facture existe déja!"
Exit Sub
End If
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Case 2
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00002").Select
' Définition de la plage a regarder
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on sort du programme
If Cell.Value = Num_Facture Then Exit Sub
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Case 3
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00003").Select
' Définition de la plage a regarder
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on sort du programme
If Cell.Value = Num_Facture Then Exit Sub
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Select
End Sub[/cpp][/cpp]Mon probleme est que le message ne s'affiche pas à l'écran dans le cas où la macro ne s'exécute pas.
Merci de m'aider.
j'ai réalisé une macro qui me permet de selectionner des données à partir d'une plage de cellules et les copier dans des plages de cellules bien données;mais à une condition:
La macro vérifie que le numero facture n'existe pas déja:
si oui la macro s'exécute.
Si non la macro ne s'exécute pas et on sort du programme.
La macro marche sans probleme;mais je souhaite que dans le cas où la macro ne s'exécute pas,je veux que la macro affiche ce message à l'écran:"ATTENTION!!! Ce N°_Facture existe déja!" avant de sortir du programme.
Comment faire car j'ai essayé mais je n'arrive pas! voici ce que j'ai trouvé:
[cpp]Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+Z
[cpp]Sheets("Retraitement_relevé").Select
Range("A6:E6").Select
Selection.Copy
Select Case Range("B3").Value
Case 1
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00001").Select
' Définition de la plage a regarder
Dim MaPlage As Range
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on affiche "ATTENTION!!! Ce N°_Facture existe déja!" et on sort du programme
If Cell.Value = Num_Facture Then
MsgBox "ATTENTION!!! Ce N°_Facture existe déja!"
Exit Sub
End If
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Case 2
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00002").Select
' Définition de la plage a regarder
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on sort du programme
If Cell.Value = Num_Facture Then Exit Sub
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Case 3
'Num_Facture correspond au N° de facture à traiter
Num_Facture = Sheets("Retraitement_relevé").Range("C6").Value
Sheets("00003").Select
' Définition de la plage a regarder
Set MaPlage = Range("Liste_N°_facture")
' Boucle + Test si Facture existe déjà
For Each Cell In MaPlage
ValeurCellule = Cell.Value
'Si Facture trouvée.. on sort du programme
If Cell.Value = Num_Facture Then Exit Sub
Next
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Select
End Sub[/cpp][/cpp]Mon probleme est que le message ne s'affiche pas à l'écran dans le cas où la macro ne s'exécute pas.
Merci de m'aider.