P
Papirus
Guest
Bonne nuit le forum
encore moi,
Je voudrais savoir comment empêcher l'affichage d'un formulaire si une condition n'est pas remplie.
Mon code:
Private Sub UserForm_Initialize()
Dim X As String
Dim Valeur1 As Variant
Dim Valeur As Variant
Dim nom1 As Range
Dim nom2 As Range
' concatene le nom de feuille dans laquelle la recherche sera faite.
Set nom1 = Workbooks("AnalyseDePerformance.xls").Worksheets("aa_MAJ_donnees").Range("a53")
Set nom2 = Workbooks("AnalyseDePerformance.xls").Worksheets("aa_MAJ_donnees").Range("b21")
X = nom1 & " " & nom2
' formate la feuil1 pour permettre de faire un filtre élaboré
Sheets("feuil1").Cells.Clear 'efface le contenu et le format de la feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("b2").Copy ' Copie le mot Nom de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a1").PasteSpecial xlPasteValues 'Colle le mot Nom dans la Feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("c2").Copy ' Colle le mot Prénom de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("b1").PasteSpecial xlPasteValues 'Copie le mot Prénom dans la Feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("A2:k2").Copy ' Copie les entêtes de colonne de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a5:k5").PasteSpecial xlPasteValues ' colle les entêtes de colonne de la feuille dépassement
' Copie/Colle le nom et le prénom de l'agent sur la feuil1 en A2 et B2 pour compléter le critère
Workbooks("AnalyseDePerformance.xls").Worksheets("aAnalyse_Agents").Range("j4").Copy ' Copie le prénom de l'agent
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a2").PasteSpecial xlPasteValues 'Colle le prénom de l'agent
Workbooks("AnalyseDePerformance.xls").Worksheets("aAnalyse_Agents").Range("n4").Copy ' Copie le nom de l'agent
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("b2").PasteSpecial xlPasteValues 'Colle le nom de l'agent
' vérifie si en A2 il y a eu saisie
Valeur = Sheets("Feuil1").Range("A2")
If Valeur = "" Then Sheets("Feuil1").Range("A2:z2") = "": Exit Sub
' s’il y a eu une saisie en A2, Exécute le critère
Worksheets("feuil1").Activate
Sheets(X).Range("A2:I2117").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("feuil1").Range("a1:a2"), CopyToRange:=Range("a5:I26"), Unique:= _
False
'teste si l'exécution du critère a donné un résultat
Valeur1 = Sheets("Feuil1").Range("A6")
'MsgBox Valeur1
' s'il n'y a pas de résultat, fermer le Userform Dépassement
If Valeur1 <> "" Then MsgBox " Il n'y a pas de dépassement pour cet Agent": Exit Sub
Text_Change
End Sub
Merci de votre aide,
Papirus
encore moi,
Je voudrais savoir comment empêcher l'affichage d'un formulaire si une condition n'est pas remplie.
Mon code:
Private Sub UserForm_Initialize()
Dim X As String
Dim Valeur1 As Variant
Dim Valeur As Variant
Dim nom1 As Range
Dim nom2 As Range
' concatene le nom de feuille dans laquelle la recherche sera faite.
Set nom1 = Workbooks("AnalyseDePerformance.xls").Worksheets("aa_MAJ_donnees").Range("a53")
Set nom2 = Workbooks("AnalyseDePerformance.xls").Worksheets("aa_MAJ_donnees").Range("b21")
X = nom1 & " " & nom2
' formate la feuil1 pour permettre de faire un filtre élaboré
Sheets("feuil1").Cells.Clear 'efface le contenu et le format de la feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("b2").Copy ' Copie le mot Nom de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a1").PasteSpecial xlPasteValues 'Colle le mot Nom dans la Feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("c2").Copy ' Colle le mot Prénom de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("b1").PasteSpecial xlPasteValues 'Copie le mot Prénom dans la Feuil1
Workbooks("AnalyseDePerformance.xls").Worksheets(X).Range("A2:k2").Copy ' Copie les entêtes de colonne de la feuille dépassement
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a5:k5").PasteSpecial xlPasteValues ' colle les entêtes de colonne de la feuille dépassement
' Copie/Colle le nom et le prénom de l'agent sur la feuil1 en A2 et B2 pour compléter le critère
Workbooks("AnalyseDePerformance.xls").Worksheets("aAnalyse_Agents").Range("j4").Copy ' Copie le prénom de l'agent
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("a2").PasteSpecial xlPasteValues 'Colle le prénom de l'agent
Workbooks("AnalyseDePerformance.xls").Worksheets("aAnalyse_Agents").Range("n4").Copy ' Copie le nom de l'agent
Workbooks("AnalyseDePerformance.xls").Sheets("feuil1").Range("b2").PasteSpecial xlPasteValues 'Colle le nom de l'agent
' vérifie si en A2 il y a eu saisie
Valeur = Sheets("Feuil1").Range("A2")
If Valeur = "" Then Sheets("Feuil1").Range("A2:z2") = "": Exit Sub
' s’il y a eu une saisie en A2, Exécute le critère
Worksheets("feuil1").Activate
Sheets(X).Range("A2:I2117").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("feuil1").Range("a1:a2"), CopyToRange:=Range("a5:I26"), Unique:= _
False
'teste si l'exécution du critère a donné un résultat
Valeur1 = Sheets("Feuil1").Range("A6")
'MsgBox Valeur1
' s'il n'y a pas de résultat, fermer le Userform Dépassement
If Valeur1 <> "" Then MsgBox " Il n'y a pas de dépassement pour cet Agent": Exit Sub
Text_Change
End Sub
Merci de votre aide,
Papirus