Vérification de conditions puis insertion d'un compteur
noemie.der
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train d'écrire un programme dans lequel je souhaiterais insérer un compteur lorsqu'une condition est vérifiée. Jusque là, rien de bien sorcier vous me direz. Je souhaite compter le nombre de lignes d la feuille Ligne qui sont copiées vers la feuille Feuil1. On copie une ligne si elle correspond aux critères (Nom, emplacement, date de création, date de modification, auteur/propriétaire) renseignés sur la Feuille Feuil1. Le problème est que plusieurs conditions renseignées peuvent être vérifiées en même temps (ex : Nom + date de modification). Je ne veux pas compter et copier la même ligne plusieurs fois. Est-ce que quelqu'un a déjà été dans une situation similaire et a trouvé une solution ?
Merci d'avance pour votre aide.
Je suis en train d'écrire un programme dans lequel je souhaiterais insérer un compteur lorsqu'une condition est vérifiée. Jusque là, rien de bien sorcier vous me direz. Je souhaite compter le nombre de lignes d la feuille Ligne qui sont copiées vers la feuille Feuil1. On copie une ligne si elle correspond aux critères (Nom, emplacement, date de création, date de modification, auteur/propriétaire) renseignés sur la Feuille Feuil1. Le problème est que plusieurs conditions renseignées peuvent être vérifiées en même temps (ex : Nom + date de modification). Je ne veux pas compter et copier la même ligne plusieurs fois. Est-ce que quelqu'un a déjà été dans une situation similaire et a trouvé une solution ?
Merci d'avance pour votre aide.
Sub LancerRecherche() Dim MC1 As String Dim MC2 As String Dim MC3 As String Dim T As String Dim DCMin As Date Dim DCMax As Date Dim DMMin As Date Dim DMMax As Date Dim A As String Dim k As Long Dim j As Long Dim c As Long Worksheets("Feuil1").Activate MC1 = Sheets("Feuil1").Range("B3").Value 'Récupère ce qui a été entré dans la case 'Mot-clé 1' et le stocke dans la variable MC1 MC2 = Sheets("Feuil1").Range("C3").Value 'Récupère ce qui a été entré dans la case 'Mot-clé 2' et le stocke dans la variable MC2 MC3 = Sheets("Feuil1").Range("D3").Value 'Récupère ce qui a été entré dans la case 'Mot-clé 3' et le stocke dans la variable MC3 T = Sheets("Feuil1").Range("B4").Value 'Récupère ce qui a été entré dans la case 'Type' et lestocke dans la variable T DCMin = Sheets("Feuil1").Range("C5").Value 'Récupère ce qui a été entré dans la case 'Date de création min' et le stocke dans la variable DCMin DCMax = Sheets("Feuil1").Range("E5").Value 'Récupère ce qui a été entré dans la case 'Date de création max' et le stocke dans la variable DCMax DMMin = Sheets("Feuil1").Range("C6").Value 'Récupère ce qui a été entré dans la case 'Date de modification min' et le stocke dans la variable DMMin DMMax = Sheets("Feuil1").Range("E6").Value 'Récupère ce qui a été entré dans la case 'Date de modification max' et le stocke dans la variable DMMax A = Sheets("Feuil1").Range("B7").Value 'Récupère ce qui a été entré dans la case 'Auteur' et le stocke dans la variable A c = 0 If Sheets("Feuil1").Range("B3") = "" And Sheets("Feuil1").Range("C3") = "" And Sheets("Feuil1").Range("D3") = "" And Sheets("Feuil1").Range("C5") = "" And Sheets("Feuil1").Range("E5") = "" And Sheets("Feuil1").Range("E5") = "" And Sheets("Feuil1").Range("C6") = "" And Sheets("Feuil1").Range("E6") = "" And Sheets("Feuil1").Range("B7") = "" Then MsgBox "Veuilliez remplir au moins une case du tableau" End If Worksheets("Liste").Activate i = Sheets("Liste").Range("I1").Value For j = 1 To i 'j va parcourir la liste de tout les fichiers référencés précédemment 'MOTS-CLE If Sheets("Liste").Range("A" & j).Value Like "*" & MC1 & "*" Then k = 18 + j Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la k-ième ligne du tableau de résultat c = c + 1 'TYPE ElseIf Sheets("Liste").Range("B" & j).Value Like "*T" Then 'Détecte si le type du j-ème fichier est celui saisi dans les critères de recherche k = 17 + j Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Type du tableu de résultats Sheets(Feuil1).Range("B" & k).Value = T c = c + 1 'DATE DE CREATION ElseIf Sheets("Feuil1").Range("C5") <> "" Or Sheets("Feuil1").Range("E6") <> "" Then '/!\ Si une des deux dates n'est pas remplie If DCMin >= DC Or DCMax <= DC Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de création du tableu de résultats c = 1 End If ElseIf Sheets("Feuil1").Range("C5") <> "" And Sheets("Feuil1").Range("E6") = "" Then 'Si uniquement la date min de création est renseignée If DCMin >= DC Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de création du tableu de résultats c = c + 1 End If ElseIf Sheets("Feuil1").Range("E6") <> "" And Sheets("Feuil1").Range("C5") = "" Then 'Si uniquement la date max de création est renseignée If DCMax <= DC Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de création du tableu de résultats c = c + 1 End If 'DATE DE MODIFICATION ElseIf Sheets("Feuil1").Range("C6") <> "" And Sheets("Feuil1").Range("E6") <> "" Then 'Si les deux dates sont renseignées If DMMin >= DM Or DMMax <= DM Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de modification du tableu de résultats c = c + 1 End If ElseIf Sheets("Feuil1").Range("C6") <> "" And Sheets("Feuil1").Range("E6") = "" Then 'Si uniquement la date min de modification est renseignée If DMMin >= DM Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de modification du tableu de résultats c = c + 1 End If ElseIf Sheets("Feuil1").Range("E6") <> "" And Sheets("Feuil1").Range("C6") = "" Then 'Si uniquement la date max de modification est renseignée If DMMax <= DM Then Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":E" & k) 'Remplit la case Date de modification du tableu de résultats c = c + 1 End If 'AUTEUR ElseIf Sheets("Liste").Range("E" & j).Value Like A Then 'Détecte si l auteur du j-ème fichier est celui saisi dans les critères de recherche k = 17 + i Sheets("Liste").Range("A" & j & ":E" & j).Copy Sheets("Feuil1").Range("A" & k & ":G" & k) 'Remplit la case Auteur du tableu de résultats c = c + 1 End If Next Feuil1.Cells(15, 2).Value = j 'Nombre de résultats trouvés If c = 0 Then MsgBox "Aucun résultat ne correspond à votre recherche. Élargissez les recherches… (ex : supprimez des critères de recherche, rajoutez un auteur, augmenter la période…)" Worksheets("Feuil1").Activate 'Affiche la feuille de résultats End Sub
A voir également:
- Echec de la vérification des conditions préalables pour la promotion du controleur
- Mode sans echec ps4 - Guide
- Echec du upnp ✓ - Forum Freebox
- Mode sans echec - Guide
- Sms tiktok verification code ✓ - Forum Mail
- Echec de l'analyse antivirus - Astuces et Solutions