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
 

tototiti2008

XLDnaute Barbatruc
Re : gestion de données

Bonjour,

la case début est la cellule où doivent commencer à s'afficher les résultats (ici A6)
Je préfère nommer les cellules importantes, comme ça même si tu insères des lignes ça continue à fonctionner...
Qu'est-ce qui ne fonctionne pas ?? ça plante où ? comment ? dans B3, as-tu bien mis le chemin de ton dossier ? ce chemin finit-il par un "\" (indispensable) ?
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

Re,

je n'avais pas mis le "\" à la fin et maintenant ça marche !!!
sauf que....
j'avais été simpliste sur les noms de mes plans...
en fait par exemple dans un dossier j'ai des numeros de plans comme ça:
0250 (plan ensemble)
0250.1 (plan produit)
0250.1.01 (plan piece)
et donc je voudrais voir apparaitre tous ces numeros dans la colonne plan

faut-il tout simplement réécrire une autre macro en changeant
"Fichier = Dir(Doss & "*.*.*.?.catdrawing")"

d'avance merci
sebdethebes
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

Re,

C'est génial !!!
ça roule a merveille!!
sauf....
il trouve bien tous les plans avec les derniers indices mais en ce qui concerne le plan 0294.3 il met dans la liste le plan 0294.3.A et le plan 294.3
(voir le fichier joint)
il faudrait que ça ne prenne en compte que les lettres des indices...
je sais je t'en demande bcp...
mais t trop fort !
d'avance merci
Sebdethebes
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

ah et autre petit soucis,

quand les plans ne sont pas indicés il n'apparaisse pas dans le tableau
je veux dire que si un plan n'a pas été modifé, j'aimerai quand meme le voir dans la liste....et dans ce cas la case version est vide
désolé...:eek:

sebdethebes
 

tototiti2008

XLDnaute Barbatruc
Re : gestion de données

Re,

bon, donc maintenant tu me dis qu'il n'y a pas toujours de version... Et plutôt que de créer une macro qui gère tous les cas (bien que ça doit être possible, si tu penses à me lister tous les cas on gagnera du temps :)), ne faudrait-il pas mettre en place une codification des versions plus "carrée" ?
Du genre (c'est juste une proposition), dès la 1ère version mettre un ".A" à la fin du nom du fichier ?
 

sebdethebes

XLDnaute Occasionnel
Re : gestion de données

tout d'abord excuses moi, il est vrai que je n'ai pas été clair dès le début....

bon , les plans que je créer à l'origine n'ont pas d'indice ( 0294.1)
quand je les modifie je pose un indice .A, .B,...etc et les indices sont toujours des lettres.
donc en fait j'aimerai avoir une macro qui me donne tous les derniers indices des plans du dossier meme si ceux-ci n'ont pas été modifiés (sans indice)..
j'espère avoir été clair...
en tout cas merci bcp de ton aide, désolé d'abuser de ta patience...
 

tototiti2008

XLDnaute Barbatruc
Re : gestion de données

Re,

essaye avec le code là :

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")
    i = 1
    Do While Fichier <> ""
        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
    Fichier = Dir
    Loop
    With ThisWorkbook.Worksheets("Scan")
        .Range(.Range("Début"), .Range("B65536")).ClearContents
        Ligne = .Range("A65536").End(xlUp).Row + 1
        For i = 1 To 2
            For j = 1 To UBound(Liste, 2)
                .Cells(Ligne + j - 1, i).Value = Liste(i, j)
            Next j
        Next i
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal