Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Débutant - Problème de Boucle une récupération de données

27 réponses
Avatar
ji
Bonjour à tous,
Ayant avancer sur ma problèmatique sur ce forum (grâce à Misange), je
n'arrive pas en mettre en boucle ma macro..
Cette dernière sert à récuperer des données précises dans un fichier TIF..
En voici le code:

Sub Macro1()

Dim Fichier As String, Chemin As String
Dim i As Long

'Répertoire contenant les photos
Chemin = "S:\Cochlée nov 2007"
Fichier = Dir(Chemin & "\*.tif")

'execution en boucle de tous les fichiers en tif
Do While Fichier <> ""

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "\" & Fichier, Destination:=Range("A1"))

'ANCIEN jouvre mon image avec des delimiteur =
'ANCIEN ChDir "S:\Cochlée nov 2007"
'ANCIEN Workbooks.OpenText Filename:="S:\Cochlée nov
2007\1-07168a1_001.tif", Origin _
'ANCIEN :=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
'ANCIEN xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False,
Semicolon:=False _
'ANCIEN , Comma:=False, Space:=False, Other:=True, OtherChar:="=",
FieldInfo _
'ANCIEN :=Array(1, 2), TrailingMinusNumbers:=True
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 17
' ActiveWindow.ScrollRow = 27
' ActiveWindow.ScrollRow = 37
' ActiveWindow.ScrollRow = 58
' ActiveWindow.ScrollRow = 79
' ActiveWindow.ScrollRow = 110
' ActiveWindow.ScrollRow = 407
' ActiveWindow.ScrollRow = 621
' ActiveWindow.ScrollRow = 694
' ActiveWindow.ScrollRow = 777
' ActiveWindow.ScrollRow = 881
' ActiveWindow.ScrollRow = 990
' ActiveWindow.ScrollRow = 1105
' ActiveWindow.ScrollRow = 1298
' ActiveWindow.ScrollRow = 1371
' ActiveWindow.ScrollRow = 1584
' ActiveWindow.ScrollRow = 1824
' ActiveWindow.ScrollRow = 1964
' ActiveWindow.ScrollRow = 2131
' ActiveWindow.ScrollRow = 2193
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2303
' ActiveWindow.ScrollRow = 2318
' ActiveWindow.ScrollRow = 2324
' ActiveWindow.ScrollRow = 2339
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2355
' ActiveWindow.ScrollRow = 2360
' ActiveWindow.ScrollRow = 2365
' ActiveWindow.ScrollRow = 2370
' ActiveWindow.ScrollRow = 2376
' ActiveWindow.ScrollRow = 2381
' ActiveWindow.ScrollRow = 2391
' ActiveWindow.ScrollRow = 2396
' ActiveWindow.ScrollRow = 2402
' ActiveWindow.ScrollRow = 2412
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2428
' ActiveWindow.ScrollRow = 2438
' ActiveWindow.ScrollRow = 2443
' ActiveWindow.ScrollRow = 2459
' ActiveWindow.ScrollRow = 2469
' ActiveWindow.ScrollRow = 2480
' ActiveWindow.ScrollRow = 2495
' ActiveWindow.ScrollRow = 2501
' ActiveWindow.ScrollRow = 2511
' ActiveWindow.ScrollRow = 2527
' ActiveWindow.ScrollRow = 2542
' ActiveWindow.ScrollRow = 2553
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2584
' ActiveWindow.ScrollRow = 2599
' ActiveWindow.ScrollRow = 2610
' ActiveWindow.ScrollRow = 2620
' ActiveWindow.ScrollRow = 2631
' ActiveWindow.ScrollRow = 2636
' ActiveWindow.ScrollRow = 2646
' ActiveWindow.ScrollRow = 2657
' ActiveWindow.ScrollRow = 2662
' ActiveWindow.ScrollRow = 2667
' ActiveWindow.ScrollRow = 2672
' ActiveWindow.ScrollRow = 2683
' ActiveWindow.ScrollRow = 2693
' ActiveWindow.ScrollRow = 2709
' ActiveWindow.ScrollRow = 2735
' ActiveWindow.ScrollRow = 2756
' ActiveWindow.ScrollRow = 2771
' ActiveWindow.ScrollRow = 2792
' ActiveWindow.ScrollRow = 2813
' ActiveWindow.ScrollRow = 2829
' ActiveWindow.ScrollRow = 2855
' ActiveWindow.ScrollRow = 2886
' ActiveWindow.ScrollRow = 2912
' ActiveWindow.ScrollRow = 2938
' ActiveWindow.ScrollRow = 2969
' ActiveWindow.ScrollRow = 3006
' ActiveWindow.ScrollRow = 3032
' ActiveWindow.ScrollRow = 3047
' ActiveWindow.ScrollRow = 3068
' ActiveWindow.ScrollRow = 3084
' ActiveWindow.ScrollRow = 3094
' ActiveWindow.ScrollRow = 3105
' ActiveWindow.ScrollRow = 3120
' ActiveWindow.ScrollRow = 3131
' ActiveWindow.ScrollRow = 3136
' ActiveWindow.ScrollRow = 3146
' ActiveWindow.ScrollRow = 3151
' ActiveWindow.ScrollRow = 3162
' ActiveWindow.ScrollRow = 3172
' ActiveWindow.ScrollRow = 3188
' ActiveWindow.ScrollRow = 3198
' ActiveWindow.ScrollRow = 3209
' ActiveWindow.ScrollRow = 3214
' ActiveWindow.ScrollRow = 3224
' ActiveWindow.ScrollRow = 3240
' ActiveWindow.ScrollRow = 3271
' ActiveWindow.ScrollRow = 3308
' ActiveWindow.ScrollRow = 3323
' ActiveWindow.ScrollRow = 3344
' ActiveWindow.ScrollRow = 3360
' ActiveWindow.ScrollRow = 3375
' ActiveWindow.ScrollRow = 3396
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3422
' ActiveWindow.ScrollRow = 3433
' ActiveWindow.ScrollRow = 3443
' ActiveWindow.ScrollRow = 3506
' ActiveWindow.ScrollRow = 3552
' ActiveWindow.ScrollRow = 3651
' ActiveWindow.ScrollRow = 3714
' ActiveWindow.ScrollRow = 3776
' ActiveWindow.ScrollRow = 3875
' ActiveWindow.ScrollRow = 3969
' ActiveWindow.ScrollRow = 3979
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3990
' ActiveWindow.ScrollRow = 3995
' ActiveWindow.ScrollRow = 4000
' ActiveWindow.ScrollRow = 4016
' ActiveWindow.ScrollRow = 4026
' ActiveWindow.ScrollRow = 4032
' ActiveWindow.ScrollRow = 4042
' ActiveWindow.ScrollRow = 4052
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 4078
' ActiveWindow.ScrollRow = 4084
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4094
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4104
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4115
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4141
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3797
' ActiveWindow.ScrollRow = 3500
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3276
' ActiveWindow.ScrollRow = 3073
' ActiveWindow.ScrollRow = 3000
' ActiveWindow.ScrollRow = 2865
' ActiveWindow.ScrollRow = 2803
' ActiveWindow.ScrollRow = 2678
' ActiveWindow.ScrollRow = 2615
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2516
' ActiveWindow.ScrollRow = 2464
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2188
' ActiveWindow.ScrollRow = 2089
' ActiveWindow.ScrollRow = 2063
' ActiveWindow.ScrollRow = 1969
' ActiveWindow.ScrollRow = 1834
' ActiveWindow.ScrollRow = 1782
' ActiveWindow.ScrollRow = 1740
' ActiveWindow.ScrollRow = 1730
' ActiveWindow.ScrollRow = 1725
' ActiveWindow.ScrollRow = 1714
' ActiveWindow.ScrollRow = 1699
' ActiveWindow.ScrollRow = 1683
' ActiveWindow.ScrollRow = 1667
' ActiveWindow.ScrollRow = 1647
' ActiveWindow.ScrollRow = 1594
' ActiveWindow.ScrollRow = 1459
' ActiveWindow.ScrollRow = 1345
' ActiveWindow.ScrollRow = 1266
' ActiveWindow.ScrollRow = 1230
' ActiveWindow.ScrollRow = 1157
' ActiveWindow.ScrollRow = 1121
' ActiveWindow.ScrollRow = 1089
' ActiveWindow.ScrollRow = 1063
' ActiveWindow.ScrollRow = 1037
' ActiveWindow.ScrollRow = 1011
' ActiveWindow.ScrollRow = 996
' ActiveWindow.ScrollRow = 980
' ActiveWindow.ScrollRow = 970
' ActiveWindow.ScrollRow = 954
' ActiveWindow.ScrollRow = 949
' ActiveWindow.ScrollRow = 938
' ActiveWindow.ScrollRow = 933
' ActiveWindow.ScrollRow = 928
' ActiveWindow.ScrollRow = 918
' ActiveWindow.ScrollRow = 912
' ActiveWindow.ScrollRow = 902
' ActiveWindow.ScrollRow = 860
' ActiveWindow.ScrollRow = 834
' ActiveWindow.ScrollRow = 803
' ActiveWindow.ScrollRow = 772
' ActiveWindow.ScrollRow = 740
' ActiveWindow.ScrollRow = 714
' ActiveWindow.ScrollRow = 683
' ActiveWindow.ScrollRow = 662
' ActiveWindow.ScrollRow = 642
' ActiveWindow.ScrollRow = 626
' ActiveWindow.ScrollRow = 610
' ActiveWindow.ScrollRow = 600
' ActiveWindow.ScrollRow = 589
' ActiveWindow.ScrollRow = 574
' ActiveWindow.ScrollRow = 558
' ActiveWindow.ScrollRow = 548
' ActiveWindow.ScrollRow = 537
' ActiveWindow.ScrollRow = 527
' ActiveWindow.ScrollRow = 501
' ActiveWindow.ScrollRow = 475
' ActiveWindow.ScrollRow = 444
' ActiveWindow.ScrollRow = 386
' ActiveWindow.ScrollRow = 324
' ActiveWindow.ScrollRow = 251
' ActiveWindow.ScrollRow = 173
' ActiveWindow.ScrollRow = 22
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 1

Workbooks.Add ' jouvre un nouveau classeur

'Je cherche HV dans limage je copie la valeur et je colle dans nouveau
classeur 1
Windows("1-07168a1_001.tif").Activate 'je selectionne mon image ou je
vais chercher
Cells.Find(What:="HV", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=True _
, SearchFormat:=False).Activate
Range("B4145").Select
Selection.Copy
Windows("Classeur1").Activate
Range("A2").Select
ActiveSheet.Paste

' Idem avec Spot
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Spot", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
True, SearchFormat:=False).Activate
Range("B4146").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("B2").Select
ActiveSheet.Paste

'Idem avec WorkingDistance
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="WorkingDistance", After:=ActiveCell,
LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
Range("B4223").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("C2").Select
ActiveSheet.Paste

'Idem avec ChpPressure
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="ChPressure", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
Range("B4236").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("D2").Select
ActiveSheet.Paste

'Idem avec UserMode
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="UserMode", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
Range("B4238").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("E2").Select
ActiveSheet.Paste

'Idem avec Temperature
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Temperature", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
Range("B4241").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("F2").Select
ActiveSheet.Paste

'Idem avec Name
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Name", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
True, SearchFormat:=False).Activate
Range("B4245").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("G2").Select
ActiveSheet.Paste

'jenregistre sous txt tabulaeur
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="S:\Cochlée nov 2007\Classeur1.txt", _
FileFormat:=xlText, CreateBackup:=False

'Jenregistre sous format excell
ActiveWorkbook.SaveAs Filename:="S:\Cochlée nov
2007\reception_extract.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Windows("macro1.xls").Activate

Fichier = Dir
Loop
End Sub

'End Sub


Je l'ai commenté afin qu'on puisse suivre que je souhaite faire et où je
veux aller..
J'ai un message d'erreur "Erreur de compilation : Boucle sans Do".
Pourriez vous me mettre sur la bonne voie.

Merci par avance

Cordialement,

Ji

10 réponses

1 2 3
Avatar
FFO
Salut à toi

Aprés avoir analysé ton code
Il souffre à mon avis d'une fin d'instruction
La ligne de commande :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

ouvre une série d'instruction qui s'applique à l'objet décrit et doit
obligatoirement se terminer par la ligne de commande :

End With

Or nul part dans ton code on ne la trouve

Il faut donc la placer à l'endroit judicieux

Ne pouvant exécuter toute cette procédure pour le déterminer (manque
fichiers et répertoires) je te laisse le soin de le faire

Je pense que cette anomalie ne sera plus aprés qu'un mauvais souvenir

Dis Moi !!!!



Bonjour à tous,
Ayant avancer sur ma problèmatique sur ce forum (grâce à Misange), je
n'arrive pas en mettre en boucle ma macro..
Cette dernière sert à récuperer des données précises dans un fichier TIF..
En voici le code:

Sub Macro1()

Dim Fichier As String, Chemin As String
Dim i As Long

'Répertoire contenant les photos
Chemin = "S:Cochlée nov 2007"
Fichier = Dir(Chemin & "*.tif")

'execution en boucle de tous les fichiers en tif
Do While Fichier <> ""

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

'ANCIEN jouvre mon image avec des delimiteur > 'ANCIEN ChDir "S:Cochlée nov 2007"
'ANCIEN Workbooks.OpenText Filename:="S:Cochlée nov
20071-07168a1_001.tif", Origin _
'ANCIEN :=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
'ANCIEN xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:úlse,
Semicolon:úlse _
'ANCIEN , Comma:úlse, Space:úlse, Other:=True, OtherChar:="=",
FieldInfo _
'ANCIEN :=Array(1, 2), TrailingMinusNumbers:=True
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 17
' ActiveWindow.ScrollRow = 27
' ActiveWindow.ScrollRow = 37
' ActiveWindow.ScrollRow = 58
' ActiveWindow.ScrollRow = 79
' ActiveWindow.ScrollRow = 110
' ActiveWindow.ScrollRow = 407
' ActiveWindow.ScrollRow = 621
' ActiveWindow.ScrollRow = 694
' ActiveWindow.ScrollRow = 777
' ActiveWindow.ScrollRow = 881
' ActiveWindow.ScrollRow = 990
' ActiveWindow.ScrollRow = 1105
' ActiveWindow.ScrollRow = 1298
' ActiveWindow.ScrollRow = 1371
' ActiveWindow.ScrollRow = 1584
' ActiveWindow.ScrollRow = 1824
' ActiveWindow.ScrollRow = 1964
' ActiveWindow.ScrollRow = 2131
' ActiveWindow.ScrollRow = 2193
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2303
' ActiveWindow.ScrollRow = 2318
' ActiveWindow.ScrollRow = 2324
' ActiveWindow.ScrollRow = 2339
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2355
' ActiveWindow.ScrollRow = 2360
' ActiveWindow.ScrollRow = 2365
' ActiveWindow.ScrollRow = 2370
' ActiveWindow.ScrollRow = 2376
' ActiveWindow.ScrollRow = 2381
' ActiveWindow.ScrollRow = 2391
' ActiveWindow.ScrollRow = 2396
' ActiveWindow.ScrollRow = 2402
' ActiveWindow.ScrollRow = 2412
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2428
' ActiveWindow.ScrollRow = 2438
' ActiveWindow.ScrollRow = 2443
' ActiveWindow.ScrollRow = 2459
' ActiveWindow.ScrollRow = 2469
' ActiveWindow.ScrollRow = 2480
' ActiveWindow.ScrollRow = 2495
' ActiveWindow.ScrollRow = 2501
' ActiveWindow.ScrollRow = 2511
' ActiveWindow.ScrollRow = 2527
' ActiveWindow.ScrollRow = 2542
' ActiveWindow.ScrollRow = 2553
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2584
' ActiveWindow.ScrollRow = 2599
' ActiveWindow.ScrollRow = 2610
' ActiveWindow.ScrollRow = 2620
' ActiveWindow.ScrollRow = 2631
' ActiveWindow.ScrollRow = 2636
' ActiveWindow.ScrollRow = 2646
' ActiveWindow.ScrollRow = 2657
' ActiveWindow.ScrollRow = 2662
' ActiveWindow.ScrollRow = 2667
' ActiveWindow.ScrollRow = 2672
' ActiveWindow.ScrollRow = 2683
' ActiveWindow.ScrollRow = 2693
' ActiveWindow.ScrollRow = 2709
' ActiveWindow.ScrollRow = 2735
' ActiveWindow.ScrollRow = 2756
' ActiveWindow.ScrollRow = 2771
' ActiveWindow.ScrollRow = 2792
' ActiveWindow.ScrollRow = 2813
' ActiveWindow.ScrollRow = 2829
' ActiveWindow.ScrollRow = 2855
' ActiveWindow.ScrollRow = 2886
' ActiveWindow.ScrollRow = 2912
' ActiveWindow.ScrollRow = 2938
' ActiveWindow.ScrollRow = 2969
' ActiveWindow.ScrollRow = 3006
' ActiveWindow.ScrollRow = 3032
' ActiveWindow.ScrollRow = 3047
' ActiveWindow.ScrollRow = 3068
' ActiveWindow.ScrollRow = 3084
' ActiveWindow.ScrollRow = 3094
' ActiveWindow.ScrollRow = 3105
' ActiveWindow.ScrollRow = 3120
' ActiveWindow.ScrollRow = 3131
' ActiveWindow.ScrollRow = 3136
' ActiveWindow.ScrollRow = 3146
' ActiveWindow.ScrollRow = 3151
' ActiveWindow.ScrollRow = 3162
' ActiveWindow.ScrollRow = 3172
' ActiveWindow.ScrollRow = 3188
' ActiveWindow.ScrollRow = 3198
' ActiveWindow.ScrollRow = 3209
' ActiveWindow.ScrollRow = 3214
' ActiveWindow.ScrollRow = 3224
' ActiveWindow.ScrollRow = 3240
' ActiveWindow.ScrollRow = 3271
' ActiveWindow.ScrollRow = 3308
' ActiveWindow.ScrollRow = 3323
' ActiveWindow.ScrollRow = 3344
' ActiveWindow.ScrollRow = 3360
' ActiveWindow.ScrollRow = 3375
' ActiveWindow.ScrollRow = 3396
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3422
' ActiveWindow.ScrollRow = 3433
' ActiveWindow.ScrollRow = 3443
' ActiveWindow.ScrollRow = 3506
' ActiveWindow.ScrollRow = 3552
' ActiveWindow.ScrollRow = 3651
' ActiveWindow.ScrollRow = 3714
' ActiveWindow.ScrollRow = 3776
' ActiveWindow.ScrollRow = 3875
' ActiveWindow.ScrollRow = 3969
' ActiveWindow.ScrollRow = 3979
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3990
' ActiveWindow.ScrollRow = 3995
' ActiveWindow.ScrollRow = 4000
' ActiveWindow.ScrollRow = 4016
' ActiveWindow.ScrollRow = 4026
' ActiveWindow.ScrollRow = 4032
' ActiveWindow.ScrollRow = 4042
' ActiveWindow.ScrollRow = 4052
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 4078
' ActiveWindow.ScrollRow = 4084
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4094
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4104
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4115
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4141
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3797
' ActiveWindow.ScrollRow = 3500
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3276
' ActiveWindow.ScrollRow = 3073
' ActiveWindow.ScrollRow = 3000
' ActiveWindow.ScrollRow = 2865
' ActiveWindow.ScrollRow = 2803
' ActiveWindow.ScrollRow = 2678
' ActiveWindow.ScrollRow = 2615
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2516
' ActiveWindow.ScrollRow = 2464
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2188
' ActiveWindow.ScrollRow = 2089
' ActiveWindow.ScrollRow = 2063
' ActiveWindow.ScrollRow = 1969
' ActiveWindow.ScrollRow = 1834
' ActiveWindow.ScrollRow = 1782
' ActiveWindow.ScrollRow = 1740
' ActiveWindow.ScrollRow = 1730
' ActiveWindow.ScrollRow = 1725
' ActiveWindow.ScrollRow = 1714
' ActiveWindow.ScrollRow = 1699
' ActiveWindow.ScrollRow = 1683
' ActiveWindow.ScrollRow = 1667
' ActiveWindow.ScrollRow = 1647
' ActiveWindow.ScrollRow = 1594
' ActiveWindow.ScrollRow = 1459
' ActiveWindow.ScrollRow = 1345
' ActiveWindow.ScrollRow = 1266
' ActiveWindow.ScrollRow = 1230
' ActiveWindow.ScrollRow = 1157
' ActiveWindow.ScrollRow = 1121
' ActiveWindow.ScrollRow = 1089
' ActiveWindow.ScrollRow = 1063
' ActiveWindow.ScrollRow = 1037
' ActiveWindow.ScrollRow = 1011
' ActiveWindow.ScrollRow = 996
' ActiveWindow.ScrollRow = 980
' ActiveWindow.ScrollRow = 970
' ActiveWindow.ScrollRow = 954
' ActiveWindow.ScrollRow = 949
' ActiveWindow.ScrollRow = 938
' ActiveWindow.ScrollRow = 933
' ActiveWindow.ScrollRow = 928
' ActiveWindow.ScrollRow = 918
' ActiveWindow.ScrollRow = 912
' ActiveWindow.ScrollRow = 902
' ActiveWindow.ScrollRow = 860
' ActiveWindow.ScrollRow = 834
' ActiveWindow.ScrollRow = 803
' ActiveWindow.ScrollRow = 772
' ActiveWindow.ScrollRow = 740
' ActiveWindow.ScrollRow = 714
' ActiveWindow.ScrollRow = 683
' ActiveWindow.ScrollRow = 662
' ActiveWindow.ScrollRow = 642
' ActiveWindow.ScrollRow = 626
' ActiveWindow.ScrollRow = 610
' ActiveWindow.ScrollRow = 600
' ActiveWindow.ScrollRow = 589
' ActiveWindow.ScrollRow = 574
' ActiveWindow.ScrollRow = 558
' ActiveWindow.ScrollRow = 548
' ActiveWindow.ScrollRow = 537
' ActiveWindow.ScrollRow = 527
' ActiveWindow.ScrollRow = 501
' ActiveWindow.ScrollRow = 475
' ActiveWindow.ScrollRow = 444
' ActiveWindow.ScrollRow = 386
' ActiveWindow.ScrollRow = 324
' ActiveWindow.ScrollRow = 251
' ActiveWindow.ScrollRow = 173
' ActiveWindow.ScrollRow = 22
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 1

Workbooks.Add ' jouvre un nouveau classeur

'Je cherche HV dans limage je copie la valeur et je colle dans nouveau
classeur 1
Windows("1-07168a1_001.tif").Activate 'je selectionne mon image ou je
vais chercher
Cells.Find(What:="HV", After:¬tiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=True _
, SearchFormat:úlse).Activate
Range("B4145").Select
Selection.Copy
Windows("Classeur1").Activate
Range("A2").Select
ActiveSheet.Paste

' Idem avec Spot
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Spot", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
True, SearchFormat:úlse).Activate
Range("B4146").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("B2").Select
ActiveSheet.Paste

'Idem avec WorkingDistance
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="WorkingDistance", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Activate


Avatar
Misange
Bonjour Ji

Quand tu donnes un code sur le forum pour demander où est l'erreur, il
est bien plus agréable que tu enlèves ce qui ne sert à rien !
Notamment ici tes innombrables lignes en commentaire. Simplifie au max
pour qu'on voie où ça peut coincer.
avec la mise en forme des newsgroup qui fait des retour chariot ça
complique encore un poil plus la lecture s'il en était besoin :-)

De plus, le fait de simplifier au max son propre code pour bien montrer
ce qui ne va pas est le plus souvent le meilleur moyen de résoudre soit
même le problème !

Une autre approche : tu fais une boucle qui fonctionne sur des fichiers
(par exemple une boucle qui ouvre 3 classeurs excel d'un dossier) et
ensuite tu remplaces dans cette boucle le code qui servait à ouvrir les
fichiers par celui qui t'intéresse vraiment

Courage :-)


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour à tous,
Ayant avancer sur ma problèmatique sur ce forum (grâce à Misange), je
n'arrive pas en mettre en boucle ma macro..
Cette dernière sert à récuperer des données précises dans un fichier TIF..
En voici le code:

Sub Macro1()

Dim Fichier As String, Chemin As String
Dim i As Long

'Répertoire contenant les photos
Chemin = "S:Cochlée nov 2007"
Fichier = Dir(Chemin & "*.tif")

'execution en boucle de tous les fichiers en tif
Do While Fichier <> ""

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

'ANCIEN jouvre mon image avec des delimiteur > 'ANCIEN ChDir "S:Cochlée nov 2007"
'ANCIEN Workbooks.OpenText Filename:="S:Cochlée nov
20071-07168a1_001.tif", Origin _
'ANCIEN :=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
'ANCIEN xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:úlse,
Semicolon:úlse _
'ANCIEN , Comma:úlse, Space:úlse, Other:=True, OtherChar:="=",
FieldInfo _
'ANCIEN :=Array(1, 2), TrailingMinusNumbers:=True
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 17
' ActiveWindow.ScrollRow = 27
' ActiveWindow.ScrollRow = 37
' ActiveWindow.ScrollRow = 58
' ActiveWindow.ScrollRow = 79
' ActiveWindow.ScrollRow = 110
' ActiveWindow.ScrollRow = 407
' ActiveWindow.ScrollRow = 621
' ActiveWindow.ScrollRow = 694
' ActiveWindow.ScrollRow = 777
' ActiveWindow.ScrollRow = 881
' ActiveWindow.ScrollRow = 990
' ActiveWindow.ScrollRow = 1105
' ActiveWindow.ScrollRow = 1298
' ActiveWindow.ScrollRow = 1371
' ActiveWindow.ScrollRow = 1584
' ActiveWindow.ScrollRow = 1824
' ActiveWindow.ScrollRow = 1964
' ActiveWindow.ScrollRow = 2131
' ActiveWindow.ScrollRow = 2193
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2303
' ActiveWindow.ScrollRow = 2318
' ActiveWindow.ScrollRow = 2324
' ActiveWindow.ScrollRow = 2339
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2355
' ActiveWindow.ScrollRow = 2360
' ActiveWindow.ScrollRow = 2365
' ActiveWindow.ScrollRow = 2370
' ActiveWindow.ScrollRow = 2376
' ActiveWindow.ScrollRow = 2381
' ActiveWindow.ScrollRow = 2391
' ActiveWindow.ScrollRow = 2396
' ActiveWindow.ScrollRow = 2402
' ActiveWindow.ScrollRow = 2412
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2428
' ActiveWindow.ScrollRow = 2438
' ActiveWindow.ScrollRow = 2443
' ActiveWindow.ScrollRow = 2459
' ActiveWindow.ScrollRow = 2469
' ActiveWindow.ScrollRow = 2480
' ActiveWindow.ScrollRow = 2495
' ActiveWindow.ScrollRow = 2501
' ActiveWindow.ScrollRow = 2511
' ActiveWindow.ScrollRow = 2527
' ActiveWindow.ScrollRow = 2542
' ActiveWindow.ScrollRow = 2553
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2584
' ActiveWindow.ScrollRow = 2599
' ActiveWindow.ScrollRow = 2610
' ActiveWindow.ScrollRow = 2620
' ActiveWindow.ScrollRow = 2631
' ActiveWindow.ScrollRow = 2636
' ActiveWindow.ScrollRow = 2646
' ActiveWindow.ScrollRow = 2657
' ActiveWindow.ScrollRow = 2662
' ActiveWindow.ScrollRow = 2667
' ActiveWindow.ScrollRow = 2672
' ActiveWindow.ScrollRow = 2683
' ActiveWindow.ScrollRow = 2693
' ActiveWindow.ScrollRow = 2709
' ActiveWindow.ScrollRow = 2735
' ActiveWindow.ScrollRow = 2756
' ActiveWindow.ScrollRow = 2771
' ActiveWindow.ScrollRow = 2792
' ActiveWindow.ScrollRow = 2813
' ActiveWindow.ScrollRow = 2829
' ActiveWindow.ScrollRow = 2855
' ActiveWindow.ScrollRow = 2886
' ActiveWindow.ScrollRow = 2912
' ActiveWindow.ScrollRow = 2938
' ActiveWindow.ScrollRow = 2969
' ActiveWindow.ScrollRow = 3006
' ActiveWindow.ScrollRow = 3032
' ActiveWindow.ScrollRow = 3047
' ActiveWindow.ScrollRow = 3068
' ActiveWindow.ScrollRow = 3084
' ActiveWindow.ScrollRow = 3094
' ActiveWindow.ScrollRow = 3105
' ActiveWindow.ScrollRow = 3120
' ActiveWindow.ScrollRow = 3131
' ActiveWindow.ScrollRow = 3136
' ActiveWindow.ScrollRow = 3146
' ActiveWindow.ScrollRow = 3151
' ActiveWindow.ScrollRow = 3162
' ActiveWindow.ScrollRow = 3172
' ActiveWindow.ScrollRow = 3188
' ActiveWindow.ScrollRow = 3198
' ActiveWindow.ScrollRow = 3209
' ActiveWindow.ScrollRow = 3214
' ActiveWindow.ScrollRow = 3224
' ActiveWindow.ScrollRow = 3240
' ActiveWindow.ScrollRow = 3271
' ActiveWindow.ScrollRow = 3308
' ActiveWindow.ScrollRow = 3323
' ActiveWindow.ScrollRow = 3344
' ActiveWindow.ScrollRow = 3360
' ActiveWindow.ScrollRow = 3375
' ActiveWindow.ScrollRow = 3396
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3422
' ActiveWindow.ScrollRow = 3433
' ActiveWindow.ScrollRow = 3443
' ActiveWindow.ScrollRow = 3506
' ActiveWindow.ScrollRow = 3552
' ActiveWindow.ScrollRow = 3651
' ActiveWindow.ScrollRow = 3714
' ActiveWindow.ScrollRow = 3776
' ActiveWindow.ScrollRow = 3875
' ActiveWindow.ScrollRow = 3969
' ActiveWindow.ScrollRow = 3979
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3990
' ActiveWindow.ScrollRow = 3995
' ActiveWindow.ScrollRow = 4000
' ActiveWindow.ScrollRow = 4016
' ActiveWindow.ScrollRow = 4026
' ActiveWindow.ScrollRow = 4032
' ActiveWindow.ScrollRow = 4042
' ActiveWindow.ScrollRow = 4052
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 4078
' ActiveWindow.ScrollRow = 4084
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4094
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4104
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4115
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4130
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4141
' ActiveWindow.ScrollRow = 4136
' ActiveWindow.ScrollRow = 4125
' ActiveWindow.ScrollRow = 4120
' ActiveWindow.ScrollRow = 4110
' ActiveWindow.ScrollRow = 4099
' ActiveWindow.ScrollRow = 4089
' ActiveWindow.ScrollRow = 4068
' ActiveWindow.ScrollRow = 3985
' ActiveWindow.ScrollRow = 3797
' ActiveWindow.ScrollRow = 3500
' ActiveWindow.ScrollRow = 3412
' ActiveWindow.ScrollRow = 3276
' ActiveWindow.ScrollRow = 3073
' ActiveWindow.ScrollRow = 3000
' ActiveWindow.ScrollRow = 2865
' ActiveWindow.ScrollRow = 2803
' ActiveWindow.ScrollRow = 2678
' ActiveWindow.ScrollRow = 2615
' ActiveWindow.ScrollRow = 2568
' ActiveWindow.ScrollRow = 2516
' ActiveWindow.ScrollRow = 2464
' ActiveWindow.ScrollRow = 2422
' ActiveWindow.ScrollRow = 2344
' ActiveWindow.ScrollRow = 2266
' ActiveWindow.ScrollRow = 2188
' ActiveWindow.ScrollRow = 2089
' ActiveWindow.ScrollRow = 2063
' ActiveWindow.ScrollRow = 1969
' ActiveWindow.ScrollRow = 1834
' ActiveWindow.ScrollRow = 1782
' ActiveWindow.ScrollRow = 1740
' ActiveWindow.ScrollRow = 1730
' ActiveWindow.ScrollRow = 1725
' ActiveWindow.ScrollRow = 1714
' ActiveWindow.ScrollRow = 1699
' ActiveWindow.ScrollRow = 1683
' ActiveWindow.ScrollRow = 1667
' ActiveWindow.ScrollRow = 1647
' ActiveWindow.ScrollRow = 1594
' ActiveWindow.ScrollRow = 1459
' ActiveWindow.ScrollRow = 1345
' ActiveWindow.ScrollRow = 1266
' ActiveWindow.ScrollRow = 1230
' ActiveWindow.ScrollRow = 1157
' ActiveWindow.ScrollRow = 1121
' ActiveWindow.ScrollRow = 1089
' ActiveWindow.ScrollRow = 1063
' ActiveWindow.ScrollRow = 1037
' ActiveWindow.ScrollRow = 1011
' ActiveWindow.ScrollRow = 996
' ActiveWindow.ScrollRow = 980
' ActiveWindow.ScrollRow = 970
' ActiveWindow.ScrollRow = 954
' ActiveWindow.ScrollRow = 949
' ActiveWindow.ScrollRow = 938
' ActiveWindow.ScrollRow = 933
' ActiveWindow.ScrollRow = 928
' ActiveWindow.ScrollRow = 918
' ActiveWindow.ScrollRow = 912
' ActiveWindow.ScrollRow = 902
' ActiveWindow.ScrollRow = 860
' ActiveWindow.ScrollRow = 834
' ActiveWindow.ScrollRow = 803
' ActiveWindow.ScrollRow = 772
' ActiveWindow.ScrollRow = 740
' ActiveWindow.ScrollRow = 714
' ActiveWindow.ScrollRow = 683
' ActiveWindow.ScrollRow = 662
' ActiveWindow.ScrollRow = 642
' ActiveWindow.ScrollRow = 626
' ActiveWindow.ScrollRow = 610
' ActiveWindow.ScrollRow = 600
' ActiveWindow.ScrollRow = 589
' ActiveWindow.ScrollRow = 574
' ActiveWindow.ScrollRow = 558
' ActiveWindow.ScrollRow = 548
' ActiveWindow.ScrollRow = 537
' ActiveWindow.ScrollRow = 527
' ActiveWindow.ScrollRow = 501
' ActiveWindow.ScrollRow = 475
' ActiveWindow.ScrollRow = 444
' ActiveWindow.ScrollRow = 386
' ActiveWindow.ScrollRow = 324
' ActiveWindow.ScrollRow = 251
' ActiveWindow.ScrollRow = 173
' ActiveWindow.ScrollRow = 22
' ActiveWindow.ScrollRow = 6
' ActiveWindow.ScrollRow = 1

Workbooks.Add ' jouvre un nouveau classeur

'Je cherche HV dans limage je copie la valeur et je colle dans nouveau
classeur 1
Windows("1-07168a1_001.tif").Activate 'je selectionne mon image ou je
vais chercher
Cells.Find(What:="HV", After:¬tiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=True _
, SearchFormat:úlse).Activate
Range("B4145").Select
Selection.Copy
Windows("Classeur1").Activate
Range("A2").Select
ActiveSheet.Paste

' Idem avec Spot
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Spot", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
True, SearchFormat:úlse).Activate
Range("B4146").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("B2").Select
ActiveSheet.Paste

'Idem avec WorkingDistance
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="WorkingDistance", After:¬tiveCell,
LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Activate
Range("B4223").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("C2").Select
ActiveSheet.Paste

'Idem avec ChpPressure
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="ChPressure", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Activate
Range("B4236").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("D2").Select
ActiveSheet.Paste

'Idem avec UserMode
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="UserMode", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Activate
Range("B4238").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("E2").Select
ActiveSheet.Paste

'Idem avec Temperature
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Temperature", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Activate
Range("B4241").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("F2").Select
ActiveSheet.Paste

'Idem avec Name
Windows("1-07168a1_001.tif").Activate
Cells.Find(What:="Name", After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
True, SearchFormat:úlse).Activate
Range("B4245").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur1").Activate
Range("G2").Select
ActiveSheet.Paste

'jenregistre sous txt tabulaeur
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="S:Cochlée nov 2007Classeur1.txt", _
FileFormat:=xlText, CreateBackup:úlse

'Jenregistre sous format excell
ActiveWorkbook.SaveAs Filename:="S:Cochlée nov
2007reception_extract.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("macro1.xls").Activate

Fichier = Dir
Loop
End Sub

'End Sub


Je l'ai commenté afin qu'on puisse suivre que je souhaite faire et où je
veux aller..
J'ai un message d'erreur "Erreur de compilation : Boucle sans Do".
Pourriez vous me mettre sur la bonne voie.

Merci par avance

Cordialement,

Ji


Avatar
ji
Bonjour,
merci à vous pour votre aide..J'ai effectivement compris l'élément manquant
dans ma macro.. cependant j'ai l'erreur suivante : "Erreur d'execution 9:
L'indice n'appartient pas à la sélection.."

Je vous mets d'adresse du document en question..
http://dl.free.fr/jFbt2ACIR/Cochléenov2007.zip

Attention, il faut changer le lettre du disque.. ce n'est pas S mais
C:dossier zip

Merci encore à vous ,

Ji


Salut à toi

Aprés avoir analysé ton code
Il souffre à mon avis d'une fin d'instruction
La ligne de commande :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

ouvre une série d'instruction qui s'applique à l'objet décrit et doit
obligatoirement se terminer par la ligne de commande :

End With

Or nul part dans ton code on ne la trouve

Il faut donc la placer à l'endroit judicieux

Ne pouvant exécuter toute cette procédure pour le déterminer (manque
fichiers et répertoires) je te laisse le soin de le faire

Je pense que cette anomalie ne sera plus aprés qu'un mauvais souvenir

Dis Moi !!!!



Avatar
ji
Bonjour Misange,
c'est avec plaisir que je vous retrouve. merci pour ces précieux conseils..
Qu'entendez vous par
"
Une autre approche : tu fais une boucle qui fonctionne sur des fichiers
(par exemple une boucle qui ouvre 3 classeurs excel d'un dossier) et
ensuite tu remplaces dans cette boucle le code qui servait à ouvrir les
fichiers par celui qui t'intéresse vraiment
"

.. je ne comprends pas tellement bien.. Il s'agirait de faire un fichier
temporaire ..c'est ca...


Ji

Avatar
FFO
Rebonjour à toi

Je ne peux accéder à ton lien (interdiction liée au filtre de mon entreprise
étant au bureau)
Peux tu mettre ton fichier à disposition en utilisant ce site :

http://www.cijoint.fr/index.php

Communiques nous le lien qui te sera attribué

Dans l'attente


Bonjour,
merci à vous pour votre aide..J'ai effectivement compris l'élément manquant
dans ma macro.. cependant j'ai l'erreur suivante : "Erreur d'execution 9:
L'indice n'appartient pas à la sélection.."

Je vous mets d'adresse du document en question..
http://dl.free.fr/jFbt2ACIR/Cochléenov2007.zip

Attention, il faut changer le lettre du disque.. ce n'est pas S mais
C:dossier zip

Merci encore à vous ,

Ji


Salut à toi

Aprés avoir analysé ton code
Il souffre à mon avis d'une fin d'instruction
La ligne de commande :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

ouvre une série d'instruction qui s'applique à l'objet décrit et doit
obligatoirement se terminer par la ligne de commande :

End With

Or nul part dans ton code on ne la trouve

Il faut donc la placer à l'endroit judicieux

Ne pouvant exécuter toute cette procédure pour le déterminer (manque
fichiers et répertoires) je te laisse le soin de le faire

Je pense que cette anomalie ne sera plus aprés qu'un mauvais souvenir

Dis Moi !!!!





Avatar
ji
Rebonjour,
Je pensais à simplification du code..
Ne serai til pas plus judicieux d'avoir un bouton qui ouvre une boite de
dialogue nous invitant à aller choisir l'image, de là la macro démarrer..

Qu'en pensez vous .. Ou puis je trouve ce ce genre de trame ..

Merci à vous une nouvelle fois..

Cordialement,

Ji
Avatar
ji
Bonjour FFO,
Je vous joins le document en question. Attention, il faut changer la lettre
du disque.. ce n'est pas S mais C:dossier zip dans la macro..

http://www.cijoint.fr/cij31953376733847.zip

Par ailleurs, j'ai essayé de construire un bouton qui ouvre une boite de
dialogue nous invitant à aller choisir l'image, de là la macro
démarrer..mais je sais pas elle s'execute directement..?? :o(.. je crois
qu'il faut revoir le code ..

Milles fois merci encore pour votre patiente

Cordialement,

Ji



Rebonjour à toi

Je ne peux accéder à ton lien (interdiction liée au filtre de mon entreprise
étant au bureau)
Peux tu mettre ton fichier à disposition en utilisant ce site :

http://www.cijoint.fr/index.php

Communiques nous le lien qui te sera attribué

Dans l'attente


Avatar
FFO
Rebonjour à toi

J'ai essayé ta macro

Je n'ai pas pu ouvrir le fichier n'ayant le programme approprié
Par contre j'ai bugué sur la ligne de commande :

Windows("Classeur1").Activate

Tu cherches à activer le classeur1 que tu as au préalable créé par une des
instructions précédentes :

Workbooks.Add ' jouvre un nouveau classeur

Si le nouveau classeur est bien créé tu ne peux en aucun cas prétendre qu'il
portera le nom "Classeur1"
Le nom d'un nouveau classeur créé de la sorte porte un nom aléatoire sous
forme de "Classeurx) x étant un chiffre que détermine excel
Mais lequel ????

Pour se sortir de cette impasse il faut créer le nouveau classeur et
récupérer son nom par le biais d'une variable que l'on sollicitera au grés du
besoin
Remplace donc la ligne :

Workbooks.Add ' jouvre un nouveau classeur

par la ligne :

ClasseurN = Workbooks.Add.Name ' jouvre un nouveau classeur et je récupère
son nom

Puis dans l'intégralité de ton code remplace Classeur1 par ClasseurN sans
guillemet
de la manière suivante dans l'éditeur de macro:

Etition/Remplacer
dans Rechercher tu mets "Classeur1"
dans Remplacer par tu mets ClasseurN

Puis actives le bouton Remplacer tout

Exécutes ta macro elle devrait se dérouler sans PB

Dis moi !!!!


Bonjour,
merci à vous pour votre aide..J'ai effectivement compris l'élément manquant
dans ma macro.. cependant j'ai l'erreur suivante : "Erreur d'execution 9:
L'indice n'appartient pas à la sélection.."

Je vous mets d'adresse du document en question..
http://dl.free.fr/jFbt2ACIR/Cochléenov2007.zip

Attention, il faut changer le lettre du disque.. ce n'est pas S mais
C:dossier zip

Merci encore à vous ,

Ji


Salut à toi

Aprés avoir analysé ton code
Il souffre à mon avis d'une fin d'instruction
La ligne de commande :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin & "" & Fichier, Destination:=Range("A1"))

ouvre une série d'instruction qui s'applique à l'objet décrit et doit
obligatoirement se terminer par la ligne de commande :

End With

Or nul part dans ton code on ne la trouve

Il faut donc la placer à l'endroit judicieux

Ne pouvant exécuter toute cette procédure pour le déterminer (manque
fichiers et répertoires) je te laisse le soin de le faire

Je pense que cette anomalie ne sera plus aprés qu'un mauvais souvenir

Dis Moi !!!!





Avatar
ji
Bonjour FFO,
Merci encore pour votre rapidité .. j'avoue ne pas bien comprendre votre
explication.. pouvez vous m'en dire d'avantage.. avec ce problème de classeur
N..
Par ailleurs, j'ai testé la macro sur différents postes et en changeant bien
la lettre du disque, je n'éprouve aucun problème à executer la macro..;
J'ai remodifier la macro en question et vous la redépose à l'adresse suivante:

http://www.cijoint.fr/cij13177563933936.zip

Ji
Avatar
Misange
Bonjour Ji,
Ce que je voulais dire c'est un conseil d'ordre général :
Quand je fais une macro compliquée qui ne fonctionne pas, pour
identifier d'où vient le problème, je créee une nouvelle macro test très
simple.
Dans le cas présent, ta macro n'arrive pas à boucler sur des fichiers
d'un répertoire. LA première question à te poser c'est :
est ce que c'est ma boucle qui est fautive ou est ce le contenu des
instructions dans la boucle ?
Pour y répondre, tu fais une macro simpliste. Je t'ai proposé d'en faire
une qui ouvre successivement des classeurs contenus dans un même
répertoire. Si celle ci fonctionne, c'est que ta boucle est correcte.


Sub boucle()
Dim Dossier As String, Ctr As Long, Fichier As String
Dossier = "C:MonRepertoireAvecLesPhotosDeMaManip"
Fichier = Dir(Dossier & "*.xls") 'prévois de mettre 2 ou 3 classeurs
'excel vides dans ce dossier pour faire ton test, excel ne sachant pas
'ouvrir les fichiers tif ! Tu changeras l'extension plus tard quand le
'test aura été concluant
Do While Fichier <> ""
Workbooks.Open Dossier & Fichier
Fichier = Dir
Loop
End Sub

Si ce test fonctionne, tu as une structure de boucle correcte.

D'un autre côté, tu testes dans une macro séparée le contenu de ta
boucle, autrement dit dans le cas présent, ce qui doit être fait sur
chacun de tes fichiers image.

Sub MesManips()
with ...
'la tu mets le code permettant le traitement des données exif pour une
'photo contenue dans le répertoire
... end with
end sub

En faisant cela tu vois que c'est dans cette partie de ton code que
résidait le problème, comme FFO te l'a fait remarquer : tu as une
instruction with en début de code mais pas de end with. Tu as cru que
c'était un prblème de boucle alors que c'était un problème ailleurs.
Tu corriges ton code.


Ensuite tu fais un mix des deux :


Sub boucleComplète()
Dim Dossier As String, Ctr As Long, Fichier As String
Dossier = "C:MonRepertoireAvecLesPhotosDeMaManip"
Fichier = Dir(Dossier & "*.tif") 'maintenant tu mets la bonne extension
Do While Fichier <> ""

'tu supprimes la ligne suivante qui ne servait qu'à tester
'Workbooks.Open Dossier & Fichier

Call MesManips
'Au lieu de coller le code de la macro MaManip, tu l'appelles depuis la
'macro boucle complète. De cette façon ton code est plus lisible, plus
'facile à modifier par la suite et à tester


Fichier = Dir
Loop
End Sub


C'est bien de commenter tes macros, mais il est vraiment inutile de
garder la trace de tout ce qui t'a servi à mettre au point et qui ne
sert à rien. On se demande pourquoi c'est là, s'il faut y porter de
l'attention où si c'est une scorie d'un développmeent précédent ! si tu
dois réutiliser une partie de ce code par la suite pour faire autre
chose, il vaut mieux qu'il soit "propre" :-)
Dans l'exemple ci-dessus, l'avantage c'est que le jour où tu as besoin
de faire une boucle sur des fichiers d'un répertoire pour un tout autre
usage, le code est prêt à l'emploi et peut resservir tel quel, il
suffira de modifier le nom de la macro appellée à l'intérieur.

Question annexe : les données exif de ton fichier tiff sont générées par
quel équipement ? La caméra (hamamatsu) du microscope du labo qui
enregistre en tiff ne nous mets (hélas...) aucune donnée exif que je
puisse récupérer à part la taille de l'image ce qui me fait une belle
jambe !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange,
c'est avec plaisir que je vous retrouve. merci pour ces précieux conseils..
Qu'entendez vous par
"
Une autre approche : tu fais une boucle qui fonctionne sur des fichiers
(par exemple une boucle qui ouvre 3 classeurs excel d'un dossier) et
ensuite tu remplaces dans cette boucle le code qui servait à ouvrir les
fichiers par celui qui t'intéresse vraiment
"

.. je ne comprends pas tellement bien.. Il s'agirait de faire un fichier
temporaire ..c'est ca...


Ji



1 2 3