IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

matrice et creation de repertoire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut matrice et creation de repertoire
    Bonjour le forum,

    j arrive a creer tout un repertoire avec la methode SHCreateDirectoryEx
    c est l utilisateur qui ecris le nom des dossiers sur la feuille 2 et l outil va lire dans le nom des dossier dans les cellules.
    Mon probleme c est qu il n y a pas de mise a jour , si l utilisateur insert une ligne.
    l outil n est plus operationnel.

    Mon objectif etant d avoir une matrice qui se met a jour automatiquement

    voici une partie de mon code , si vous avez besoin de plus d info n hesitez pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    Sub Eng()
        Dim Directory As Variant
        Dim T1, T2, T3, C1, New_Project
        T1 = UserForm1.TextBox1 & " - "
        T2 = UserForm1.TextBox2 & " - "
        T3 = UserForm1.TextBox3
        C1 = UserForm1.combobox1 & "\"
        New_Project = "D:\Documents and Settings\be30enginering\My Documents\" & C1 & T1 & T2 & T3
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox261
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox262
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox263
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox264
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox265
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B70") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox266
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B70") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox267
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B70") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox268
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B70") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox269
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B71") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox270
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B71") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox271
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B71") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox272
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B71") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox273
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B72") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox274
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B72") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox275
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B72") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox276
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B72") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox277
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B73") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox278
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B73") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox279
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B73") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox280
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B73") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox281
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B74") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox282
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B74") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox283
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B74") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox284
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B74") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
     
        Select Case True
        Case UserForm1.combobox2 = "A" And Sheet2.CheckBox285
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B75") & "\"
        Case UserForm1.combobox2 = "B" And Sheet2.CheckBox286
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B75") & "\"
        Case UserForm1.combobox2 = "C" And Sheet2.CheckBox287
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B75") & "\"
        Case UserForm1.combobox2 = "D" And Sheet2.CheckBox288
            Directory = New_Project & "\" & Sheet2.Range("A69") & "\" & Sheet2.Range("B75") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
    End Sub
    voici un exemple du repertoire sur ma feuille 2...Book1.xls

    merci
    Tom

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut tomy7 et le forum
    Difficile de t'aider, le fichier d'essai ne contient pas grand chose
    et encore que sur la sheet1

    Mais tout ton code semble basé sur
    Sheet2.Range("A69")
    comme c'est du code et non une formule, A69b est une valeur Absolue. il faudrait que ce soit une adresse recalculée à chaque exécution de ta macro. N'ayant pas d'idée de la structure de ta colonne A, que des idées :
    soit c'est la dernière et avec un End(xl)up
    soit en mettant un nom reconnaissable sur la cellule avant et en recherchant ce mot (Find)
    A+

  3. #3
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    je ne peux poster la vraie structure car c est confidentiel...

    en effet tout est sur la feuille 2!


    je suis dans l optique de faire un truc comme sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Dim i as integer
    for i = 4 to 75 ' nombre de lignes
    if sheet2.range("A" &i) <> "" then 
    Select Case True
        Case UserForm1.ComboBox2 = "A" And Sheet2.CheckBox73
            Directory = New_project & "\" & Sheet2.Range("A22") & "\"
        Case UserForm1.ComboBox2 = "B" And Sheet2.CheckBox74
            Directory = New_project & "\" & Sheet2.Range("A22") & "\"
        Case UserForm1.ComboBox2 = "C" And Sheet2.CheckBox75
            Directory = New_project & "\" & Sheet2.Range("A22") & "\"
        Case UserForm1.ComboBox2 = "D" And Sheet2.CheckBox76
            Directory = New_project & "\" & Sheet2.Range("A22") & "\"
        End Select
        SHCreateDirectoryEx 0&, Directory, 0&
    .
    .
    .
    .
    next i
    end if
    si ta une autre idee...
    merci
    Tom

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut tomy7
    je ne peux poster la vraie structure car c est confidentiel
    Non! une structure n'est jamais confidentielle, seul le contenu des cellules l'est! Que peut-on faire avec le fait que c'est la cellule A22 qui contient le chemin, si la cellule A22="Chemin1" ?
    La séxurité c'est protéger les informations vitales, pas tout protéger (enfin c'est mon opinion)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case UserForm1.ComboBox2 = "A" And Sheet2.CheckBox73
            Directory = New_project & "\" & Sheet2.Range("A22") & "\"
    Ton nouveau code présente le même défaut que le précédent : Si on insere une ligne, A22 devrait devenir A23. Ores c'est fixé en "dur", alors que ton info est mouvante.
    Il faut que tu remplaces Range("A22") par une information qui calculera l'endroit où se trouve cette cellule, quelque soit les insertions/suppressions de lignes
    Ou tu lui défini un nom ("chemin" par exemple : dans Excel Menu insertion>>Noms>>Définir)
    et tu remplaces ton code par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case UserForm1.ComboBox2 = "A" And Sheet2.CheckBox73
            Directory = New_project & "\" & Sheet2.Range("chemin") & "\"
    en modifiant toute la série.
    A+

  5. #5
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    Merci Gorfael

    je vais voir ce que je peux faire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [windev 11]erreur sur creation de repertoire
    Par nath-0-0 dans le forum WinDev
    Réponses: 12
    Dernier message: 20/01/2008, 19h54
  2. Débutant: creation de repertoire
    Par billy78 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/06/2007, 12h26
  3. Problème de creation de repertoire avec une DLL
    Par Avisseau dans le forum Delphi
    Réponses: 4
    Dernier message: 19/06/2006, 09h13
  4. creation de repertoire
    Par Galkir dans le forum C++Builder
    Réponses: 10
    Dernier message: 15/06/2006, 20h23
  5. [C#] Creation de repertoire
    Par kekesilo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/06/2004, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo