Trier une feuille excel

LORDDD

XLDnaute Occasionnel
Bonjour a vous tous.

Voici ma problématique.

En onglet 1, je fais une extraction d'un doc txt, qui ce transforme sur mon onglet.
l'estraction est journaliere, et vat du jour de l'extraction au 31/12 de l'année.
Il comporte par date des segments bifr, tgse etc.. (tjs dif d'un jour sur l'autre) (en couleur verte sur doc)
Il comporte aussi des recap mensuel au milieu de tous ca (en couleur jaune sur doc)

Les difficultées :
La date n'est présente que sur sur la ligne de récap journalier

Le but & résultat attendu (voir l'onglet n°2)


Merci par avance de votre aide, je reste à votre dispo si vous avez des questions.

Cordialement
:eek:
 

Tatiana29

XLDnaute Occasionnel
Re : Trier une feuille excel

Voici le début de ma reflexion.

Dim cpt As Integer
Dim nb_lignes As Integer
nb_lignes = activeworkboos.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
cpt = 0
Do
If activeworkboos.Sheets("Extraction fichier TXT").Range("A" & cpt).Value = " " Then

End If

cpt = cpt + 1
Loop While cpt < nb_lignes + 1
 

LORDDD

XLDnaute Occasionnel
Re : Trier une feuille excel

Merci de te pencher sur mon cas.

L'extraction du fichier txt, j'ai, la feuille en onglet 1 est l'extraction faite (je veux pas vous faire perndre du tps) LOl

Par contre attention je suis super novice en VBA....

Lord DD
 

Tatiana29

XLDnaute Occasionnel
Re : Trier une feuille excel

J'avance un peu!
Dim celule As String
Dim cpt As Integer
Dim nb_lignes As Integer
nb_lignes = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
'nb_lignes = 15
cpt = 1
Do
'Test pour savoir si la donnée de la colonne A est en majuscule
celule = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A" & cpt).Value
If UCase(celule) = celule Then
ActiveWorkbook.Sheets("Extraction fichier TXT").Range("k" & cpt).Value = "oui"

End If

cpt = cpt + 1
Loop While cpt < nb_lignes + 1
 

Tatiana29

XLDnaute Occasionnel
Re : Trier une feuille excel

Ca avance,il reste le pb de la date à régler et supprimer les .
Dim celule As String
Dim cpt As Integer
Dim nb_lignes As Integer
nb_lignes = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
nb_lignes = 15
cpt = 1
m = 2 'compteur pour la feuille de restit
Do
'Test pour savoir si la donnée de la colonne A est en majuscule
celule = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A" & cpt).Value
If UCase(celule) = celule Then
ActiveWorkbook.Sheets("Resmacro").Range("A" & m).Value = celule
ActiveWorkbook.Sheets("Resmacro").Range("b" & m).Value = "date"
ActiveWorkbook.Sheets("Resmacro").Range("c" & m).Value = celule
ActiveWorkbook.Sheets("Resmacro").Range("d" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("b" & cpt).Value 'liste
ActiveWorkbook.Sheets("Resmacro").Range("e" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("D" & cpt).Value 'dispo
ActiveWorkbook.Sheets("Resmacro").Range("f" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("E" & cpt).Value 'chambre
Else
ActiveWorkbook.Sheets("Resmacro").Range("A" & m).Value = celule
ActiveWorkbook.Sheets("Resmacro").Range("b" & m).Value = "mois"
ActiveWorkbook.Sheets("Resmacro").Range("c" & m).Value = celule
ActiveWorkbook.Sheets("Resmacro").Range("d" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("b" & cpt).Value 'liste
ActiveWorkbook.Sheets("Resmacro").Range("e" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("D" & cpt).Value 'dispo
ActiveWorkbook.Sheets("Resmacro").Range("f" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("E" & cpt).Value 'chambre
m = m + 1
End If

cpt = cpt + 1
Loop While cpt < nb_lignes + 1
 

Pièces jointes

  • Copie de Trier et ranger_v2.xls
    131 KB · Affichages: 29

Tatiana29

XLDnaute Occasionnel
Re : Trier une feuille excel

Voilà mon code rectifié.
Il reste plus qu'a refaire la date et c'est good!
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 30/11/2011 par charles.thubert
'
Dim celule As String
Dim cpt As Integer
Dim nb_lignes As Integer
nb_lignes = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
nb_lignes = 25
cpt = 1
m = 2 'compteur pour la feuille de restit
Do
'Test pour savoir si la donnée de la colonne A est en majuscule
celule = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A" & cpt).Value
If UCase(celule) = celule Then
ActiveWorkbook.Sheets("Resmacro").Range("A" & m).Value = Replace(celule, ".", "")
ActiveWorkbook.Sheets("Resmacro").Range("b" & m).Value = "date"
ActiveWorkbook.Sheets("Resmacro").Range("c" & m).Value = Replace(celule, ".", "")
ActiveWorkbook.Sheets("Resmacro").Range("d" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("b" & cpt).Value 'liste
ActiveWorkbook.Sheets("Resmacro").Range("e" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("D" & cpt).Value 'dispo
ActiveWorkbook.Sheets("Resmacro").Range("f" & m).Value = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("E" & cpt).Value 'chambre
m = m + 1

End If

cpt = cpt + 1
Loop While cpt < nb_lignes + 1


End Sub
 

Tatiana29

XLDnaute Occasionnel
Re : Trier une feuille excel

Ah la je bloque sur la transformation en format date de.
a18.11 en 18/11/2011.
il faut utiliser les fonctions de traitement de chaine de caractère mais je sais pas si on peut traiter kes chaines de caracstères comme en C comme une matrice.
 

JNP

XLDnaute Barbatruc
Re : Trier une feuille excel

Bonjour le fil :),
Ah la je bloque sur la transformation en format date de.
a18.11 en 18/11/2011.
il faut utiliser les fonctions de traitement de chaine de caractère mais je sais pas si on peut traiter kes chaines de caracstères comme en C comme une matrice.
avec Left, Mid et Right, tu va pouvoir récupérer 18 et 11, mais le 2011 :confused: ?

nb_lignes = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
nb_lignes = 25
T'est sûre de ton coup :rolleyes:... ?
Bonne suite :cool:
 

JNP

XLDnaute Barbatruc
Re : Trier une feuille excel

Re :),
A tester après avoir rajouté une "Feuil1" :p
Code:
Sub Test()
Dim I As Integer, Temp As String, J As Integer, MaDate As Date, K As Integer
J = 3
K = 3
With Sheets("Extraction fichier TXT")
    For I = 2 To .Range("A65536").End(xlUp).Row
        Temp = Trim(Replace(Replace(.Range("A" & I), ".", ""), " ", ""))
        Sheets("Feuil1").Range("A" & J) = Temp
        Sheets("Feuil1").Range("C" & J) = Temp
        Sheets("Feuil1").Range("D" & J) = .Range("B" & I)
        Sheets("Feuil1").Range("E" & J) = .Range("D" & I)
        Sheets("Feuil1").Range("F" & J) = .Range("E" & I)
        If IsNumeric(Temp) And Len(Temp) = 4 Then
            Sheets("Feuil1").Range("B" & K & ":B" & J) _
            = Format(DateSerial(Right(Temp, 2), Left(Temp, 2), 1), "mmmm yyyy")
            K = J + 1
        End If
        If Len(Temp) = 5 And Temp <> "perio" Then
            MaDate = DateSerial(2011, Right(Temp, 2), Mid(Temp, 2, 2))
            Sheets("Feuil1").Range("B" & K & ":B" & J) = MaDate
            K = J + 1
        End If
        J = J + 1
    Next I
End With
End Sub
Bonne soirée :cool:
 

LORDDD

XLDnaute Occasionnel
Re : Trier une feuille excel

Géniale, ca fonctionne...

J'ai encore une demande, étant donnée que les extractions se font sur diffrentes année, est il possible de mettre l'année qui est traitée en feuille macro cellule b2 et de s'en servir pour creer la datattion des dif segments

Je doit reconnaitre que vous etes des pro, j'ai un peu de mal a suivre la logique des formules... Mais ca marche du feux de dieux.

Merci
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 379
Messages
2 087 769
Membres
103 662
dernier inscrit
rterterert