Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Modification macro-arborescence d’un dossier et sous-dossier

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 !

zac.dubeau

XLDnaute Nouveau
Bonjour,



Je cherche à modifier une macro d’arborescence de dossier afin d’obtenir le résultat ci-dessous en lieu et place du résultat actuelle :



  • La valeur actuellement en colonne doit être en face de toute les lignes contenant une valeur en colonne D et non en décalé et juste sur une ligne
  • Avoir en colonne A la valeur qui est actuellement en colonne C
  • Avoir en colonne B la valeur qui est actuellement en colonne E
  • Avoir en colonne C la valeur qui est actuellement en colonne D
  • Également seul les fichiers word doivent être pris en compte et non les autres fichiers


J’ai essayé de modifier la macro sans grand succès pour le moment
 

Pièces jointes

Bonjour Zac.Dubeau,
Un essai en PJ avec :
VB:
Sub Result()
Dim L As Integer, IndewW As Integer
IndexW = 2                                                      ' init pointeur écriture
Sheets("Result").Range("A2:C1000").ClearContents                ' effacement table résultats
With Sheets("Arborecence trame actuel")
    DerLig = .Range("D65500").End(xlUp).Row
    For L = 2 To DerLig                                         ' pour toutes les lignes du tableau
        If .Cells(L, "C") <> "" Then
            Equipement = .Cells(L, "C")                         ' mémorise équipement
        End If
        If .Cells(L, "D") <> "" Then                            ' si marque présente
            Sheets("Result").Cells(IndexW, 1) = Equipement      ' on écrit équipement
            Sheets("Result").Cells(IndexW, 2) = .Cells(L, "E")  ' type
            Sheets("Result").Cells(IndexW, 3) = .Cells(L, "D")  ' marque
            If .Cells(L, "D") <> .Cells(L - 1, "D") Then        ' si changement de marque
                IndexW = IndexW + 2                             ' on saute deux lignes
            Else
                IndexW = IndexW + 1                             ' sinon une seule
            End If
        End If
    Next L
End With
End Sub
 

Pièces jointes

- 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
6
Affichages
258
Réponses
8
Affichages
647
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…