Débutant - Problème de Boucle une récupération de données
27 réponses
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 <> ""
'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
'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.
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 <> ""
'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
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 <> ""
'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
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 <> ""
'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
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 <> ""
'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
'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
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 <> ""
'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
'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.
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 <> ""
'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
'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
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 :
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,
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 :
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 :
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 !!!!
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
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...
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
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 :
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 !!!!
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 :
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 :
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 !!!!
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
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 ..
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
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
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 :
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
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 :
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 !!!!
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 :
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 :
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 !!!!
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
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:
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
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
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...
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...