Macro excel pour tri de données et récupération d'information en tête de ligne

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 !

hydrogeologue

XLDnaute Nouveau
N'étant pas un grand spécialiste en VBA je demande votre aide concernant la mise en forme d'un tableau suivant :

!Données Affluent : 3 Pas= 6
! Long Cum Flow_Riv Colon Ligne
640.5 1308000 131 43
24482.5 3835000 128 25

!Données Affluent : 4 Pas= 8
! Long Cum Flow_Riv Colon Ligne
610.5 120800 146 53
1784 0 146 52
23757.5 5588000 141 37

etc..........

Au format suivant :
Récupérer la données pas= x pour le mettre en colonne en face des données

! Long Cum Flow_Riv Colon Ligne
Pas= 6 640.5 1308000 131 43
Pas= 6 24482.5 3835000 128 25
Pas= 8 610.5 120800 146 53
Pas= 8 1784 0 146 52
Pas= 8 23757.5 5588000 141 37


Je vous remercie d'avance pour l'aide que vous pourrez m'apporter....
 
Re : Macro excel pour tri de données et récupération d'information en tête de ligne

Re ,

Voici donc un code à mettre dans un module standard .

Code:
Sub organise()
Dim Trouve As Range
Dim Pas As String, PremiereAdresse As String, Lecture As String
Dim Ligne As Long, Cible As Long

With Worksheets("Données").Range("A:A")
    Set Trouve = .Find("Affluent :", Lookat:=xlPart, LookIn:=xlValues)
    If Not Trouve Is Nothing Then
        Ligne = Trouve.Row
        PremiereAdresse = Trouve.Address
        Cible = 1
        Ligne = Ligne + 1
        Sheets("Resultats").Range("A" & Cible) = "Pas"
        Sheets("Resultats").Range("B" & Cible & ":R" & Cible).Value = Worksheets("Données").Range("A" & Ligne & ":Q" & Ligne).Value
        
        Do
            Ligne = Ligne + 1
            Pas = Trim(Split(Split(Trouve, "Pas=")(1), "t")(0))
            Do
            Cible = Cible + 1
            Sheets("Resultats").Range("A" & Cible) = Pas
            Sheets("Resultats").Range("B" & Cible & ":R" & Cible).Value = Worksheets("Données").Range("A" & Ligne & ":Q" & Ligne).Value
            Ligne = Ligne + 1
            Lecture = Worksheets("Données").Range("A" & Ligne)
            Loop Until Lecture = ""
            Ligne = Ligne + 1
            Set Trouve = .FindNext(Trouve)
            Ligne = Ligne + 1
        Loop While Not Trouve Is Nothing And Trouve.Address <> PremiereAdresse
    End If
End With
End Sub
 
- 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

Discussions similaires

Réponses
11
Affichages
2 K
Retour