gestion de données

sebdethebes

XLDnaute Occasionnel
Bonjour,

Voilà, je cherche à créer un fichier excel pour gérer des indices de plans.
cad, quand je modifie un plan et que je l'indice à xxxxx.A, je voudrais que le dernier indice apparaisse dans un tableau (les indices vont de .A à .Z)
ce petit tableau me permetterais de connaitre ainsi tous les derniers indices de chaque dossier de plans.
Est-ce possible????
D'avance merci
Cordialement
Sebdethebes
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

ecoutes c'est pas grave c'est déjà très bien comme ça !

tu as été, il faut bien le dire, un chef sur ce coup là...en tous cas je te jure que ça va m'aider dans ma gestion de plans au taf.
tu as fait une macro qui va alléger mes recherches de plans et ainsi me donner la certitude sur la derniere version d'un plan.

Alors merci merci merci pour ton aide et ta patience !
je sais que j'ai abusé un peu... ;)

A bientôt
Sebdethebes

PS: Encore un grand merci pr tout ! :D
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

dans le repertoire a scanner il ya donc des catdrawings(plans) des catpart(3D) et des pdf.
mais si je comprends ce que tu veux dire n'oublis pas qu'il y a aussi des catdrawings qu'on a écarté (plans d'études qui ne commencent pas par des chiffres)...
et effectivement ils sont en fin de liste dans le repertoire...
 

tototiti2008

XLDnaute Barbatruc
Re : gestion de données

Re,

Non, je ne voulais qu'une confirmation comme quoi la dernière ligne remplie en colonne A de la feuille de calcul correspondait bien au dernier plan de la liste de ceux trouvés la fois d'avant.
Dans mon répertoire de test, j'ai aussi mis des .catpart et ça n'a pas d'incidence.

Si en colonne A tu n'avais pas tout de renseigné, ça aurait pu expliquer les différences de comportement entre chez toi et chez moi...
 

tototiti2008

XLDnaute Barbatruc
Re : gestion de données

Re,

Il faut que la cellule Début se trouve en colonne B (ligne de ton choix)
puis
modifie les parties en rouge :

Code:
Sub ListePlans()
Dim Doss As String, Fichier As String, Ligne As String, Plan As String, Vers As String, i As Long
    Doss = ThisWorkbook.Worksheets("Scan").Range("Dossier").Value
    ReDim Liste(1 To 2, 1 To 1)
    Fichier = Dir(Doss & "*.catdrawing")
    With ThisWorkbook.Worksheets("Scan")
        Ligne = .Range("A65536").End(xlUp).Row
        AncienneListe = .Range(.Range("Début"), .Range("[COLOR=red]C[/COLOR]" & Ligne)).Value
    End With
    i = 1
    Do While Fichier <> ""
        If Fichier Like "#*" Then
            Fichier = Left(Fichier, InStrRev(Fichier, ".") - 1)
                If InStr(1, Fichier, ".") <> 0 Then
                Vers = UCase(Right(Fichier, Len(Fichier) - InStrRev(Fichier, ".")))
                    If Len(Vers) = 1 And Asc(UCase(Vers)) > 64 And Asc(UCase(Vers)) < 91 Then
                        Vers = UCase(Right(Fichier, Len(Fichier) - InStrRev(Fichier, ".")))
                        Plan = Left(Fichier, InStrRev(Fichier, ".") - 1)
                    Else
                        Vers = " "
                        Plan = Fichier
                    End If
                Else
                    Vers = " "
                    Plan = Fichier
                End If
            
            Ligne = ExisteDansTab(Plan)
                If Ligne > 0 Then
                    If Asc(Liste(2, Ligne)) < Asc(Vers) Then
                        Liste(2, Ligne) = Vers
                    End If
                Else
                    ReDim Preserve Liste(1 To 2, 1 To i)
                    Liste(1, i) = Plan
                    Liste(2, i) = Vers
                    i = i + 1
                End If
        End If
    Fichier = Dir
    Loop
            
    With ThisWorkbook.Worksheets("Scan")
        For i = 1 To UBound(Liste, 2)
            If ExisteDansAncienneListe(Liste(1, i)) = 0 Then
                .Range("Date").Value = Date
                Exit For
            ElseIf Liste(2, i) <> AncienneListe(ExisteDansAncienneListe(Liste(1, i)), 2) Then
                .Range("Date").Value = Date
                Exit For
            End If
        Next i
        .Range(.Range("Début"), .Range("[COLOR=red]C[/COLOR]65536")).ClearContents
        Ligne = .Range("[COLOR=red]B65536[/COLOR]").End(xlUp).Row + 1
        For i = 1 To 2
            For j = 1 To UBound(Liste, 2)
                .Cells(Ligne + j - 1, [COLOR=red]i+1[/COLOR]).Value = Liste(i, j)
            Next j
        Next i
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 868
dernier inscrit
JJV