Problème de recherche dans autre fichier
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code :
Le problème est que si je choisis un mois avec mon InputBox et une année, alors il va bien chercher dans l'autre fichier la bonne colonne pas de problème. Mais j'ai parfois plusieurs mois qui se chevauchent. Du coup, quand je relance la macro pour l'autre mois, la recherche que j'avais faite sur le mois d'avant disparaît...
J'ai pourtant ajouté la ligne
En gros il faudrait que les lignes qui ont déjà été remplies par la première recherche ne soient plus prises en compte si je refais une recherche sur le mois suivant.
Merci d'avance pour votre aide.
PS : le code de mon Userform :
Et le dernier code qui lance tout :
Cordialement.
Voici mon code :
Public MOIS_BOX As String Public ANNEE_BOX As String Public Sub CODE() Dim Wk As Workbook, x As String, i As Long, DL As Long, NumOT As String, lig As Long, N As Byte, N2 As Byte, Mois As String, Année As String Mois = MOIS_BOX 'Mois = InputBox("Entrer le mois d'affretement en majuscules (Ex : JANVIER)") 'If Mois = "" Then Exit Sub 'Annee = InputBox("Entrer l'année d'affrètement (Ex : 2015)") Annee = ANNEE_BOX x = "affretement" & " " & Mois & " " & Annee On Error Resume Next Set Wk = Workbooks(x & ".xls") If Err <> 0 Then Workbooks.Open Filename:="K:\AFFRETEMENT EN COURS\" & Annee & "\" & Mois & " " & Annee & "\" & x & ".xls" End If DL = ThisWorkbook.ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To DL NumOT = ThisWorkbook.ActiveSheet.Cells(i, 2) N = Application.CountIf(Workbooks("affretement SEPTEMBRE 2015.xls").Worksheets("NATIONAL").Range("W:W"), NumOT) If N = 1 Then With Workbooks("affretement" & " " & Mois & " " & Annee & ".xls").Worksheets("NATIONAL") lig = 1 lig = .Columns("W").Find(NumOT, .Cells(lig, "W"), , xlWhole).Row If Cells(lig, "T") = "" Then ThisWorkbook.ActiveSheet.Cells(i, 14) = .Cells(lig, "T") End If End With End If N2 = Application.CountIf(Workbooks("affretement SEPTEMBRE 2015.xls").Worksheets("EXPORT").Range("W:W"), NumOT) If N2 = 1 Then With Workbooks("affretement" & " " & Mois & " " & Annee & ".xls").Worksheets("EXPORT") lig = 1 lig = .Columns("W").Find(NumOT, .Cells(lig, "W"), , xlWhole).Row If Cells(lig, "T") = "" Then ThisWorkbook.ActiveSheet.Cells(i, 14) = .Cells(lig, "T") End If End With End If Next i Workbooks("POINTAGE FINAL 2.xlsm").Activate End Sub
Le problème est que si je choisis un mois avec mon InputBox et une année, alors il va bien chercher dans l'autre fichier la bonne colonne pas de problème. Mais j'ai parfois plusieurs mois qui se chevauchent. Du coup, quand je relance la macro pour l'autre mois, la recherche que j'avais faite sur le mois d'avant disparaît...
J'ai pourtant ajouté la ligne
If Cells(lig, "T") = "" Then
En gros il faudrait que les lignes qui ont déjà été remplies par la première recherche ne soient plus prises en compte si je refais une recherche sur le mois suivant.
Merci d'avance pour votre aide.
PS : le code de mon Userform :
Public Sub CommandButton1_Click() MOIS_BOX = ComboBox1.Value ANNEE_BOX = ComboBox2.Value Application.Run ("CODE") Unload Me End Sub Private Sub UserForm_Initialize() With Me.ComboBox1 .AddItem "JANVIER" .AddItem "FEVRIER" .AddItem "MARS" .AddItem "AVRIL" .AddItem "MAI" .AddItem "JUIN" .AddItem "JUILLET" .AddItem "AOUT" .AddItem "SEPTEMBRE" .AddItem "OCTOBRE" .AddItem "NOVEMBRE" .AddItem "DECEMBRE" End With With Me.ComboBox2 .AddItem "2015" .AddItem "2016" .AddItem "2017" .AddItem "2018" .AddItem "2019" .AddItem "2020" .AddItem "2021" .AddItem "2022" .AddItem "2023" .AddItem "2024" .AddItem "2025" .AddItem "2026" .AddItem "2027" .AddItem "2028" .AddItem "2029" .AddItem "2030" End With End Sub
Et le dernier code qui lance tout :
Sub CONTACTS() UserForm1.Show End Sub
Cordialement.
A voir également:
- Problème de recherche dans autre fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Problème résolu.
Le problème venait de là :
Remplaçé par :
Et même chose pour N2.
Le problème venait de là :
N = Application.CountIf(Workbooks("affretement SEPTEMBRE 2015.xls").Worksheets("NATIONAL").Range("W:W"), NumOT)
Remplaçé par :
N = Application.CountIf(Workbooks("affretement" & " " & Mois & " " & Annee & ".xls").Worksheets("NATIONAL").Range("W:W"), NumOT)
Et même chose pour N2.