Trier une feuille excel

  • Initiateur de la discussion Initiateur de la discussion LORDDD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
😱
 
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
 
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
 
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
 
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

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
 
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.
 
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 😕 ?

nb_lignes = ActiveWorkbook.Sheets("Extraction fichier TXT").Range("A65000").End(xlUp).Row
nb_lignes = 25
T'est sûre de ton coup 🙄... ?
Bonne suite 😎
 
Re : Trier une feuille excel

Re 🙂,
A tester après avoir rajouté une "Feuil1" 😛
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 😎
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour