Qualificateur incorrect
Résolu/Fermé
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
-
9 oct. 2013 à 15:21
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 15 oct. 2013 à 07:37
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 15 oct. 2013 à 07:37
29 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 9/10/2013 à 16:01
Modifié par f894009 le 9/10/2013 à 16:01
Re Bonjour Tom 44
cela devrait aller:
Do While Not IsEmpty(shSUIVI.Cells(j, 2))
mais,
With NomFichier -----> la cela ne cadre pas, parce que NomFicher n'est pas declare en variable Public ou Global,donc sauf erreur de ma part NomFichier dans ce module de code est vide et si vous declarez cette variable public, vous avez le chemin et le nom du fichier
A+
cela devrait aller:
Do While Not IsEmpty(shSUIVI.Cells(j, 2))
mais,
With NomFichier -----> la cela ne cadre pas, parce que NomFicher n'est pas declare en variable Public ou Global,donc sauf erreur de ma part NomFichier dans ce module de code est vide et si vous declarez cette variable public, vous avez le chemin et le nom du fichier
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 16:27
9 oct. 2013 à 16:27
Rebonjour,
Comme vous l'aurez compris votre macro d'ouverture fonctionne à merveille, mais je ne parvients pas à définir ce fichier comme la source de mes données dans ma première boucle ...
Auriez vous là aussi une manière de me dépanner ?
Comme vous l'aurez compris votre macro d'ouverture fonctionne à merveille, mais je ne parvients pas à définir ce fichier comme la source de mes données dans ma première boucle ...
Auriez vous là aussi une manière de me dépanner ?
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 9/10/2013 à 17:31
Modifié par f894009 le 9/10/2013 à 17:31
Re,
Oui. Je regarde la chose.
Worksheets("sites") est un onglet du fichier xls ouvert apres recherche ???
A+
Oui. Je regarde la chose.
Worksheets("sites") est un onglet du fichier xls ouvert apres recherche ???
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 17:46
9 oct. 2013 à 17:46
Oui tout à fait.
C'est d'ailleurs le seul onglet du classeur.
Cdt,
C'est d'ailleurs le seul onglet du classeur.
Cdt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
9 oct. 2013 à 17:55
9 oct. 2013 à 17:55
Re,
code modifier:
Public NomFichier As String
Public Rep_Fichier
A+
code modifier:
Public NomFichier As String
Public Rep_Fichier
Sub MAJ_OPTIMUM()
'
' MAJ_Suivi_D2 Macro
' Mise à jour des donnée OPTIMUM
'
Dim Dossier As String
Dim Id_PM, Etat_PM, Id_PA, Etat_PA, Id_Process, Num, Num_cplt, Voie, Adresse, Batiment, Etat_Nego, Nb_logt, logt_R, logt_P, Annee_prog, typo, Envoi_acces, Valid_acces, Id_PB, Date_PB, Code_syndic, Nom_syndic, DTA, Nego_int, Envoi_accord, Retour_accord, Refus_accord, Date_recep_PETU, Date_valid_PETU, Date_accord As Variant
Dim i, j As Integer
Dim trouve As Boolean
Dim shSUIVI As Worksheet
Set shSUIVI = Workbooks("Export site lot2 LE MANS.xlsm").Worksheets("Suivi D2")
Call MaProcedure
'recuperation nom du fichier sans le chemin
NomFichier = Right(NomFichier, Len(NomFichier) - Len(Rep_Fichier))
With Workbooks(NomFichier).Worksheets("sites")
i = 10
Do While Not (IsEmpty(.Cells(i, 1)))
Dossier = .Cells(i, 1)
Id_PM = .Cells(i, 6).Value
Etat_PM = .Cells(i, 9).Value
Id_PA = .Cells(i, 14).Value
Etat_PM = .Cells(i, 15).Value
Id_Process = .Cells(i, 16).Value
Num = .Cells(i, 23).Value
Num_cplt = .Cells(i, 24).Value
Voie = .Cells(i, 25).Value
Adresse = .Cells(i, 26).Value
Batiment = .Cells(i, 27).Value
Etat_Nego = .Cells(i, 33).Value
Nb_logt = .Cells(i, 46).Value
logt_R = .Cells(i, 47).Value
logt_P = .Cells(i, 48).Value
Annee_prog = .Cells(i, 58).Value
typo = .Cells(i, 39).Value
Envoi_acces = .Cells(i, 64).Value
Valid_acces = .Cells(i, 65).Value
Id_PB = .Cells(i, 115).Value
Date_PB = .Cells(i, 116).Value
Code_syndic = .Cells(i, 121).Value
Nom_syndic = .Cells(i, 122).Value
DTA = .Cells(i, 123).Value
Nego_int = .Cells(i, 130).Value
Envoi_accord = .Cells(i, 136).Value
Retour_accord = .Cells(i, 137).Value
Refus_accord = .Cells(i, 138).Value
Date_recep_PETU = .Cells(i, 143).Value
Date_valid_PETU = .Cells(i, 147).Value
Date_accord = .Cells(i, 150).Value
trouve = False
Workbooks("Export site lot2 LE MANS.xlsm").Worksheets("Suivi D2").Activate
j = 10
Do While Not IsEmpty(shSUIVI.Cells(j, 2))
If shSUIVI.Cells(j, 2) = Dossier Then
If Not IsNull(Id_PM) Or Id_PM <> "" Then
shSUIVI.Cells(j, 2) = Id_PM
End If
If Not IsNull(Etat_PM) Or Etat_PM <> "" Then
shSUIVI.Cells(j, 2) = Etat_PM
End If
If Not IsNull(Id_PA) Or Id_PA <> "" Then
shSUIVI.Cells(j, 2) = Id_PA
End If
If Not IsNull(Etat_PM) Or Etat_PM <> "" Then
shSUIVI.Cells(j, 2) = Etat_PM
End If
If Not IsNull(Id_Process) Or Id_Process <> "" Then
shSUIVI.Cells(j, 2) = Id_Process
End If
If Not IsNull(Num) Or Num <> "" Then
shSUIVI.Cells(j, 2) = Num
End If
If Not IsNull(Num_cplt) Or Num_cplt <> "" Then
shSUIVI.Cells(j, 2) = Num_cplt
End If
If Not IsNull(Voie) Or Voie <> "" Then
shSUIVI.Cells(j, 2) = Voie
End If
If Not IsNull(Adresse) Or Adresse <> "" Then
shSUIVI.Cells(j, 2) = Adresse
End If
If Not IsNull(Batiment) Or Batiment <> "" Then
shSUIVI.Cells(j, 2) = Batiment
End If
If Not IsNull(Etat_Nego) Or Etat_Nego <> "" Then
shSUIVI.Cells(j, 2) = Etat_Nego
End If
If Not IsNull(Nb_logt) Or Nb_logt <> "" Then
shSUIVI.Cells(j, 2) = Nb_logt
End If
If Not IsNull(logt_R) Or logt_R <> "" Then
shSUIVI.Cells(j, 2) = logt_R
End If
If Not IsNull(logt_P) Or logt_P <> "" Then
shSUIVI.Cells(j, 2) = logt_P
End If
If Not IsNull(Annee_prog) Or Annee_prog <> "" Then
shSUIVI.Cells(j, 2) = Annee_prog
End If
If Not IsNull(typo) Or typo <> "" Then
shSUIVI.Cells(j, 2) = typo
End If
If Not IsNull(Envoi_acces) Or Envoi_acces <> "" Then
shSUIVI.Cells(j, 2) = Envoi_acces
End If
If Not IsNull(Valid_acces) Or Valid_acces <> "" Then
shSUIVI.Cells(j, 2) = Valid_acces
End If
If Not IsNull(Id_PB) Or Id_PB <> "" Then
shSUIVI.Cells(j, 2) = Id_PB
End If
If Not IsNull(Date_PB) Or Date_PB <> "" Then
shSUIVI.Cells(j, 2) = Date_PB
End If
If Not IsNull(Code_syndic) Or Code_syndic <> "" Then
shSUIVI.Cells(j, 2) = Code_syndic
End If
If Not IsNull(Nom_syndic) Or Nom_syndic <> "" Then
shSUIVI.Cells(j, 2) = Nom_syndic
End If
If Not IsNull(DTA) Or DTA <> "" Then
shSUIVI.Cells(j, 2) = DTA
End If
If Not IsNull(Nego_int) Or Nego_int <> "" Then
shSUIVI.Cells(j, 2) = Nego_int
End If
If Not IsNull(Envoi_accord) Or Envoi_accord <> "" Then
shSUIVI.Cells(j, 2) = Envoi_accord
End If
If Not IsNull(Retour_accord) Or Retour_accord <> "" Then
shSUIVI.Cells(j, 2) = Retour_accord
End If
If Not IsNull(Refus_accord) Or Refus_accord <> "" Then
shSUIVI.Cells(j, 2) = Refus_accord
End If
If Not IsNull(Date_recep_PETU) Or Date_recep_PETU <> "" Then
shSUIVI.Cells(j, 2) = Date_recep_PETU
End If
If Not IsNull(Date_valid_PETU) Or Date_valid_PETU <> "" Then
shSUIVI.Cells(j, 2) = Date_valid_PETU
End If
If Not IsNull(Date_accord) Or Date_accord <> "" Then
shSUIVI.Cells(j, 2) = Date_accord
End If
GoTo debut
trouve = True
End If
j = j + 1
Loop
debut:
'Next i
i = i + 1
Loop
End With
MsgBox "MAJ Terminée", vbOKOnly
End Sub
Sub MaProcedure()
NomFichier = RechercheFichier()
If NomFichier = "" Then
MsgBox "Vous n'avez sélectionné aucun fichier"
Else
Workbooks.Open NomFichier
End If
End Sub
Function RechercheFichier() As String
Dim fd As FileDialog
Dim NomFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "fichier xls", "*.xls"
.Title = "Recherche de fichier" 'mettre le chemin du repertoire
.InitialFileName = "d:\_cles\" '"Bureau\"
'repertoire fichier
Rep_Fichier = .InitialFileName
End With
If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
RechercheFichier = NomFichier
End Function
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 08:45
10 oct. 2013 à 08:45
Bonjour,
Encore un grand merci pour ton aide.
Cependant je viens de le tester et je me retrouve avec une erreur d'execution '9'
L'indice n'appartient pas à la selection
With Workbooks(NomFichier).Worksheets("sites")
Auriez vous une petite idée sur la question ?
En vous remerciant par avance.
Encore un grand merci pour ton aide.
Cependant je viens de le tester et je me retrouve avec une erreur d'execution '9'
L'indice n'appartient pas à la selection
With Workbooks(NomFichier).Worksheets("sites")
Auriez vous une petite idée sur la question ?
En vous remerciant par avance.
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 08:58
10 oct. 2013 à 08:58
J'ai l'impression qu'à la fin de la deuxième boucle, le code ne parvient pas à revenir au classeur source...
Tout le code est il à reprendre ?
Merci pour vos réponses.
Tout le code est il à reprendre ?
Merci pour vos réponses.
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
10 oct. 2013 à 09:58
10 oct. 2013 à 09:58
Bonjour,
With Workbooks(NomFichier).Worksheets("sites")
quand vous avez l'erreur, quel est le contenu de NomFichier ??
With Workbooks(NomFichier).Worksheets("sites")
quand vous avez l'erreur, quel est le contenu de NomFichier ??
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 10:05
10 oct. 2013 à 10:05
Le contenu ne varie pas d'un passage de boucle à l'autre.
NomFichier est censé récupérer le nom du fichier source défini par la recherche de fichier initiale.
Mais j'ai la forte impression qu'une fois passé un tour de boucle, le NomFichier n'est plus du tout reconnu.
NomFichier est censé récupérer le nom du fichier source défini par la recherche de fichier initiale.
Mais j'ai la forte impression qu'une fois passé un tour de boucle, le NomFichier n'est plus du tout reconnu.
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
10 oct. 2013 à 10:09
10 oct. 2013 à 10:09
Re,
Mais j'ai la forte impression qu'une fois passé un tour de boucle, le NomFichier n'est plus du tout reconnu. Repondez a la question, NomFichier contient-il le nom du fichier attendu ????
Mais j'ai la forte impression qu'une fois passé un tour de boucle, le NomFichier n'est plus du tout reconnu. Repondez a la question, NomFichier contient-il le nom du fichier attendu ????
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 11:56
10 oct. 2013 à 11:56
"NomFichier" contient le nom du fichier source avec son extension .xls
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
10 oct. 2013 à 13:02
10 oct. 2013 à 13:02
Re,
Il faut montrer votre code entier, pour comprendre.
A+
Il faut montrer votre code entier, pour comprendre.
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 13:52
10 oct. 2013 à 13:52
Vous trouverez ci-après le code au complet :
https://www.cjoint.com/c/CJkn0ekvtZf
https://www.cjoint.com/c/CJkn0ekvtZf
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
10 oct. 2013 à 15:17
10 oct. 2013 à 15:17
Re,
essayez avec ce code:
https://www.cjoint.com/?CJkprJTNwM7
A+
essayez avec ce code:
https://www.cjoint.com/?CJkprJTNwM7
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
10 oct. 2013 à 16:52
10 oct. 2013 à 16:52
Merci pour la tentative.
Malheureusement infructueuse : en effet la seconde boucle ne retrouve plus sa condition "Do"...
J'essayerai de vous fournir les 2 fichiers concernés par soucis de facilité de codage...
Malheureusement infructueuse : en effet la seconde boucle ne retrouve plus sa condition "Do"...
J'essayerai de vous fournir les 2 fichiers concernés par soucis de facilité de codage...
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 10/10/2013 à 17:56
Modifié par f894009 le 10/10/2013 à 17:56
Re,
En effet, vos fichiers serons bienvenus, car je peux difficilement tester les boucles do et je ne comprends pas vraiment votre facon de faire!!!
A+
En effet, vos fichiers serons bienvenus, car je peux difficilement tester les boucles do et je ne comprends pas vraiment votre facon de faire!!!
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
14 oct. 2013 à 09:47
14 oct. 2013 à 09:47
Bonjour,
Désolé pour le temps sans réponse (fin de semaine chargée...)
Ci-après les 2 fichiers concernés :
https://www.cjoint.com/?CJojVDpzeTL
Désolé pour le temps sans réponse (fin de semaine chargée...)
Ci-après les 2 fichiers concernés :
https://www.cjoint.com/?CJojVDpzeTL
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
14 oct. 2013 à 14:07
14 oct. 2013 à 14:07
Bonjour,
Désolé pour le temps sans réponse (fin de semaine chargée...) Y a pas de lezards. Je recupere vos fichiers et vous tiens au courant.
A+
Désolé pour le temps sans réponse (fin de semaine chargée...) Y a pas de lezards. Je recupere vos fichiers et vous tiens au courant.
A+
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 14/10/2013 à 15:36
Modifié par f894009 le 14/10/2013 à 15:36
Re,
Une ligne en trop dans Function RechercheFichier() As String:
Dim NomFichier As String (sorry, j'ai oublie de l'enlever dans le code que je vous ai donne)
Vous pouvez nous rappeler ce que vous esperez faire avec votre macro MAJ_OPTIMUM() !!!!!
Si c'est une mise a jour de Suivi_D2, cela risque d'etre un peu long avec votre facon de proceder d'ou ce que j'avais ecrit : je ne comprends pas vraiment votre facon de faire!!!
A+
Une ligne en trop dans Function RechercheFichier() As String:
Dim NomFichier As String (sorry, j'ai oublie de l'enlever dans le code que je vous ai donne)
Vous pouvez nous rappeler ce que vous esperez faire avec votre macro MAJ_OPTIMUM() !!!!!
Si c'est une mise a jour de Suivi_D2, cela risque d'etre un peu long avec votre facon de proceder d'ou ce que j'avais ecrit : je ne comprends pas vraiment votre facon de faire!!!
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
14 oct. 2013 à 15:39
14 oct. 2013 à 15:39
Bonjour,
Le but de la macro est en 2 phases :
1° Permettre à l'utilisateur d'ouvrir un fichier de données source.
Cette partie de lamacro fonctionne très bien grâce à vous.
2° La macro doit récupérer les informations du fichier source et les transposer dans le fichier cible en se référant aux codes IMB présents dans les 2 fichiers :
Colonne A (Fichier source)
Colonne B (Fichier cible)
J'avais donc commencer par désigner les colonnes de données à récupérer dans le fichier source par une 1ère boucle Do While, puis désigner de la même façon les colonnes cibles du second fichier avec une 2ème boucle Do While.
Mais depuis la MAJ de la macro, la première boucle ne fonctionne plus...
Je suis bien conscient que cette méthode n'est pas la plus rapide (surtout lors de l'execution de la macro), mais devrait tout de même fonctionner. Enfin je crois...
Le but de la macro est en 2 phases :
1° Permettre à l'utilisateur d'ouvrir un fichier de données source.
Cette partie de lamacro fonctionne très bien grâce à vous.
2° La macro doit récupérer les informations du fichier source et les transposer dans le fichier cible en se référant aux codes IMB présents dans les 2 fichiers :
Colonne A (Fichier source)
Colonne B (Fichier cible)
J'avais donc commencer par désigner les colonnes de données à récupérer dans le fichier source par une 1ère boucle Do While, puis désigner de la même façon les colonnes cibles du second fichier avec une 2ème boucle Do While.
Mais depuis la MAJ de la macro, la première boucle ne fonctionne plus...
Je suis bien conscient que cette méthode n'est pas la plus rapide (surtout lors de l'execution de la macro), mais devrait tout de même fonctionner. Enfin je crois...