Bonjour à tous,
Je suis tout débutant en VBA, et j'ai un petit problème avec les conditions et la formule "For Each C in".
Voila mon souci:
Dans un classeur1, j'ai plusieurs feuilles liés et différentes macros, l'une de ces macro doit vérifier dans un autre classeur (archives) si des enregistrements existent et dans certaines conditions, lancer d'autres macro, ou avertir l'utilisateur avec des MsgBox.
J'ai commencé à coder cette macro, mais bien évidemment cela ne fonctionne pas.
Je montre le code quand même, en espérant que quelqu'un pourra m'aider à le corriger.
Merci d'avance
Je suis tout débutant en VBA, et j'ai un petit problème avec les conditions et la formule "For Each C in".
Voila mon souci:
Dans un classeur1, j'ai plusieurs feuilles liés et différentes macros, l'une de ces macro doit vérifier dans un autre classeur (archives) si des enregistrements existent et dans certaines conditions, lancer d'autres macro, ou avertir l'utilisateur avec des MsgBox.
J'ai commencé à coder cette macro, mais bien évidemment cela ne fonctionne pas.
Je montre le code quand même, en espérant que quelqu'un pourra m'aider à le corriger.
Code:
Sub Verifdoublon()
Dim Lieu As String
Dim Colp As String
Dim Jour As Long
Dim Soirée As String
Dim Début As Long
Dim Fin As Long
Lieu = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("D2").Value
Colp = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("K2").Value
Jour = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("C2").Value
Soirée = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("I2").Value
Début = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("G2").Value
Fin = Workbooks("Classeur1.xlsm").Sheets("Archives").Range("H2").Value
' On vérifie si le même enregistrement éxiste déjà dans les archives
Windows("Archives.xlsb").Activate
Sheets("Archives").Select
Dim co As Boolean
Dim jo As Boolean
Dim li As Boolean
Dim so As Boolean
Dim dé As Boolean
Dim Plagecolp As Range
Set Plagecolp = Range("K2:K65536").SpecialCells(xlCellTypeVisible)
For Each C In Plagecolp
If C Like Colp Then
co = True
End If
Dim Plagejour As Range
Set Plagejour = Range("C2:C65536").SpecialCells(xlCellTypeVisible)
For Each C In Plagejour
If C Like Jour Then
jo = True
End If
Dim Plagelieu As Range
Set Plagelieu = Range("D2:D65536").SpecialCells(xlCellTypeVisible)
For Each C In Plagelieu
If C Like Lieu Then
li = True
End If
Dim Plagesoirée As Range
Set Plagesoirée = Range("I2:I65536").SpecialCells(xlCellTypeVisible)
For Each C In Plagesoirée
If C Like Soirée Then
so = True
End If
Dim Plagedébut As Range
Set Plagedébut = Range("G2:G65536").SpecialCells(xlCellTypeVisible)
For Each C In Plagedébut
If C Like Début Then
dé = True
End If
If co = True And jo = True And dé = True Then
If MsgBox.Show("1° information", MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation) = MsgBoxResult.Yes Then
'On archive le nouvel enregistrement
Call archiver
Else
Windows("Classeur1.xlsm").Activate
Sheets("CONSOLE").Select
Range("C3").Select
Exit Sub
End If
End If
If so = True And jo = True And li = True Then
If MsgBox.Show("2° information", MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation) = MsgBoxResult.Yes Then
'On archive le nouvel enregistrement
Call archiver
Else
Windows("Classeur1.xlsm").Activate
Sheets("CONSOLE").Select
Range("C3").Select
Exit Sub
End If
End If
End Sub
Merci d'avance