trouver une date dans une colonne

ouali

XLDnaute Junior
Bonjour,

J'ai un fichier qui est un résumé de plusieurs fichiers. En fait, on a effectué des mesures qui se trouvent dans un fichier. Dans ce dernier, chaque ligne correspond a une mesure et chaque ligne a une date.

J'aimerais dans le fichier resumé dire que je veux les mesures du 06.05.2011 au 10.05.2011 mais a chaque fois la methode Range echoue (de la boucle do...loop until)

Quelqu'un peut m'aider ??

Merci d'avance

Ps. : le code ci-dessous et au cas les fichers correspondant

HTML:
Dim chemin As String
Dim N, L As Integer
Dim NumModule As Long
Dim Num As Integer




' Ouverture du fichier .csv et remise en forme


Sub Fonction_Carte(N As Variant, Carte As Variant)
   
    Annee = Range("J5")
    Mois = Range("N5")
    debut = Range("C5")
    fin = Range("E5")
    chemin = ThisWorkbook.Path & "\MAVG_" & Carte & "_M" & Annee & Mois & ".CSV"
    Workbooks.Open Filename:=chemin
 
    L = Range("A60000").End(xlUp).Row + 1 ' Nombre de ligne dans le fichier csv

    With ActiveWorkbook.Sheets(1).Columns(1) ' separe les points-virgules dans les différentes colonnes
       .TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, Tab:=False, Semicolon:=True
    End With
    
    Columns("A:A").Select
    Selection.NumberFormat = "dd.mm.yyyy"
    
    lignedebut = 1
    lignefin = 2
   
    Do
                lignedebut = lignedebut + 1
    Loop Until Range("A" & lignedebut) Like debut
    
    Do
                lignefin = lignefin + 1
    Loop Until Range("A" & lignefin) Like fin
    

    MaxIL1 = Application.WorksheetFunction.Max(Range(g & lignedebut, g & lignefin))
    MaxIL2 = Application.WorksheetFunction.Max(Range("h1:h" & Range("h65530").End(xlUp).Row))
    MaxIL3 = Application.WorksheetFunction.Max(Range("i1:i" & Range("i65530").End(xlUp).Row))
    '"i1:i" & Range("i65530").End(xlUp).Row))
    
    MaxIRMSL1 = Application.WorksheetFunction.Max(Range("d1:d" & Range("d65530").End(xlUp).Row))
    MaxIRMSL2 = Application.WorksheetFunction.Max(Range("e1:e" & Range("e65530").End(xlUp).Row))
    MaxIRMSL3 = Application.WorksheetFunction.Max(Range("f1:f" & Range("f65530").End(xlUp).Row))
    MaxtotS = Application.WorksheetFunction.Max(Range("ad1:ad" & Range("ad65530").End(xlUp).Row))
    MaxTotP = Application.WorksheetFunction.Max(Range("ab1:ab" & Range("ab65530").End(xlUp).Row))
    
    
    
    Workbooks("MAVG_" & Carte & "_M" & Annee & Mois & ".CSV").Close True

    ThisWorkbook.Activate

    Range("D" & N + 9).Value = MaxIL1
    Range("E" & N + 9).Value = MaxIL2
    Range("F" & N + 9).Value = MaxIL3
    Range("g" & N + 9).Value = MaxIRMSL1
    Range("h" & N + 9).Value = MaxIRMSL2
    Range("i" & N + 9).Value = MaxIRMSL3
    If Carte = 101510 Or Carte = 101575 Then
        MaxVL1 = Application.WorksheetFunction.Max(Range("d1:d" & Range("p65530").End(xlUp).Row))
        MaxVL2 = Application.WorksheetFunction.Max(Range("e1:e" & Range("q65530").End(xlUp).Row))
        MaxVL3 = Application.WorksheetFunction.Max(Range("f1:f" & Range("r65530").End(xlUp).Row))
        Range("j" & N + 9).Value = MaxVL1
        Range("k" & N + 9).Value = MaxVL2
        Range("l" & N + 9).Value = MaxVL3
        Range("n" & N + 9).Value = MaxtotS
        If MaxtotS <> 0 Then
            Range("m" & N + 9).Value = MaxTotP / MaxtotS
        End If
    End If

End Sub

Sub transfert_donnee()


Call Fonction_Carte(1, 101510)
'Call Fonction_Carte(2, 101511)
'Call Fonction_Carte(3, 101512)
'Call Fonction_Carte(4, 101519)
'Call Fonction_Carte(5, 101520)
'Call Fonction_Carte(6, 101521)
'Call Fonction_Carte(7, 101522)
'Call Fonction_Carte(8, 101524)
'Call Fonction_Carte(9, 101569)
'Call Fonction_Carte(10, 101570)
'Call Fonction_Carte(11, 101571)
'Call Fonction_Carte(12, 101572)
'Call Fonction_Carte(13, 101573)
'Call Fonction_Carte(14, 101574)
'Call Fonction_Carte(15, 101575)

End Sub
 

Pièces jointes

  • Mesures.zip
    32.2 KB · Affichages: 21
  • Mesures.zip
    32.2 KB · Affichages: 19
  • Mesures.zip
    32.2 KB · Affichages: 21

camarchepas

XLDnaute Barbatruc
Re : trouver une date dans une colonne

Bonjour,

Recherche un peu tirée par les cheveux,

Mais ton probléme est que dans le fichier données les dates ont en date serie et le format est avec un point au lieu d'être avec une virgule .

Voici un zoom sur le code concerné :

lignedebut = 1

Do
lignedebut = lignedebut + 1
inter = CDate(Replace(Range("A" & lignedebut), ".", ","))
Loop Until InStr(1, inter, debut) > 0

lignefin = lignedebut - 1

Do
lignefin = lignefin + 1
inter = CDate(Replace(Range("A" & lignefin), ".", ","))
Loop Until InStr(1, inter, fin) > 0

Aprés , je n'ai pas testé la suite de ton appli....
 

camarchepas

XLDnaute Barbatruc
Re : trouver une date dans une colonne

Bien oui,

Encore faut-il que les données soient triées par date dans le fichier.

Il faut convertir la date recherchée en num de série , puis faire une recherche par le haut , une par le bas et hop le tour est joué , bien plus rapide si beaucoup de lignes.
 

Discussions similaires

Réponses
17
Affichages
348
Réponses
6
Affichages
248

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87