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 :

Débutant - problème de Boucle ou de End if


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut Débutant - problème de Boucle ou de End if
    Bonjour à tous,
    J'ai créer en tout bien et tout honneur ce petit script afin qu'il récupére
    certaines données liées à des images tif.
    Cependant, il existe un problème de boucle ou de end if dans mon code car il me repete bêtement l'information que je demande et ne passe pas à la l'image tif suivante..

    Je n'arrive pas à cibler l'erreur pour corriger cela..
    Voici le code en question.

    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
    94
    95
    96
    97
    98
    99
    Sub macro_final()
    '
    ' macro_final Macro
    '
     
    '
     
    Dim Fichier As String, Chemin As String
    Dim i As Long
     
    'Répertoire contenant les photos
    Chemin = "C:\scriptmeb"
    Fichier = Dir(Chemin & "\*.tif")
     
    Do While Fichier <> ""
     
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;C:\scriptmeb\HI 07035 A.tif", Destination:=Range("A1"))
    .Name = "HI 07035 A"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = False
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 1252
    .TextFileStartRow = 171
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileOtherDelimiter = "="
    .TextFileColumnDataTypes = Array(2, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With
    Rows("80:80").Select
    ActiveWindow.SmallScroll Down:=-12
    ActiveWindow.ScrollRow = 48
    ActiveWindow.ScrollRow = 47
    ActiveWindow.ScrollRow = 46
    ActiveWindow.ScrollRow = 45
    ActiveWindow.ScrollRow = 44
    ActiveWindow.ScrollRow = 43
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 41
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 38
    ActiveWindow.ScrollRow = 37
    ActiveWindow.ScrollRow = 34
    ActiveWindow.ScrollRow = 32
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 28
    ActiveWindow.ScrollRow = 26
    ActiveWindow.ScrollRow = 23
    ActiveWindow.ScrollRow = 21
    ActiveWindow.ScrollRow = 19
    ActiveWindow.ScrollRow = 17
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 14
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 11
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 9
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 7
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 1
    Range("80:80,3:78").Select
    Range("A3").Activate
    ActiveWindow.SmallScroll Down:=15
    Range("80:80,3:78,80:90,91:91,93:93").Select
    Range("A93").Activate
    ActiveWindow.SmallScroll Down:=12
    Range("80:80,3:78,80:90,91:91,93:93,95:96,98:100,102:122").Select
    Range("A102").Activate
    ActiveWindow.SmallScroll Down:=-126
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-204
    Selection.EntireRow.Hidden = True
    ActiveWindow.SmallScroll Down:=-42
    ActiveWorkbook.Save
    'End Sub
     
    Fichier = Dir
    Loop
    End Sub
    Merci par avance quant à votre aide,

    Ji

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Beaucoup de .ScrollRow là-dedans...

    Pour ton pb, je crois que tu n'utilises pas la variable Fichier dans le QueryTables.Add, ce qui est dommage puisque c'est elle qui est sensée contenir successivement chaque nom de fichier.

    Bon courage,

    PGZ

  3. #3
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    Bonjour,

    Afin de pouvoir t'aider au mieux pourrais tu préciser ce que ton programme est sensé faire ?

    Je suppose que tu as "fait" ta macro avec l'enregistreur non ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Citation Envoyé par pgz Voir le message
    Bonjour.

    Beaucoup de .ScrollRow là-dedans...

    Pour ton pb, je crois que tu n'utilises pas la variable Fichier dans le QueryTables.Add, ce qui est dommage puisque c'est elle qui est sensée contenir successivement chaque nom de fichier.

    Bon courage,

    PGZ
    Bonjour,
    c'est gentil à vous de me répondre.. comment dois je formuler le QueryTable pour qu'il prenne en compte des lots d'images tif et non pas une liste définis d'images.

    Oui, effectivement, il y a pas mal de .ScrollRow mais étant vraiment débutant, je n'ai pas pour l'instant trouvé mieux. Comment peut-on faire pour maximiser le code.

    Encore merci.

    Ji

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Citation Envoyé par mordrhim Voir le message
    Bonjour,

    Afin de pouvoir t'aider au mieux pourrais tu préciser ce que ton programme est sensé faire ?

    Je suppose que tu as "fait" ta macro avec l'enregistreur non ?
    Bonjour,
    merci pour votre aide. Oui effectivement, j'avoue?? cette macro a été effectué avec l'enregistreur puisque me considérant comme débutant je n'ai pas les bases suffisantes pour écrire le code directement.
    Mon code doit permettre d'afficher certaines informations - "métadonnées exif" - liées à des images tif.

    Ji

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.



    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & Chemin & "\" & Fichier, Destination:=Range("A1"))
    A mettre au point.
    Pour le reste, il y a sûrement du nettoyage à faire.

    Bon courage,

    PGZ

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Bonjour,
    merci pour votre aide.. Effectivement ce code est lourd. Je viens d'enlever tous les .ScrollRow. Cependant, je ne vois pas comment je dois faire pour n'avoir que certaines informations dans les lignes en sachant que qu'elles ne sont pas tous au même à la même ligne..?

    Ji

  8. #8
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    comment sont organisés tes package de fichier .TIF ?

    Un petit bout de code à adapter pour traiter des fichiers présent dans un dossier et ses sous dossiers
    PathFichiers : Le dossier et ses sous dossier à regarder "C:\Dossier\SousDossier\...\etc\"
    ExtensionFichiers : Extension des fichiers à compter "*.extension"

    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
    Sub ListerFichierTif()
        Dim PathFichiers As String, ExtensionFichiers As String
     
        ExtensionFichiers = InputBox("Extension des fichiers")
        PathFichiers = InputBox("Chemin des fichiers")
        k = 0
        With Excel.Application.FileSearch
            .NewSearch
            .LookIn = PathFichiers
            .SearchSubFolders = True
            .Filename = "*.tif"
            If .Execute() > 0 Then
                For i = 1 To .FoundFiles.Count
                    MsgBox .FoundFiles(i)
                    k = k + 1
                Next
            End Id
        End With
        MsgBox "Il y a " & k & " Fichier(s) " & ExtensionFichiers & " dans " & PathFichiers 
    End Sub

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Par défaut
    Bonjour,
    je ne comprends pas bien l'utilisation de ce code.. pouvez vous m'expliquer..
    Merci

    Ji

Discussions similaires

  1. [Débutant] Problème de boucle
    Par Clemounet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/03/2009, 21h30
  2. [débutant]problème avec boucle
    Par nzangel dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 26/04/2008, 12h46
  3. [ débutant ] problème dans boucle
    Par waved dans le forum Langage
    Réponses: 4
    Dernier message: 16/01/2008, 09h49
  4. [Débutant]Problème de boucle infini
    Par Keldou dans le forum Octave
    Réponses: 1
    Dernier message: 21/04/2007, 17h20
  5. [VBS][Débutant] Problème syntaxe boucle For
    Par _alex_ dans le forum VBScript
    Réponses: 2
    Dernier message: 26/07/2006, 14h26

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