Erreur 438 encore et toujours

Résolu/Fermé
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016 - Modifié par Feudora le 4/11/2016 à 11:48
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016 - 7 nov. 2016 à 09:39
Bonjour,

J'ai écrit un code avec méthode FIND dans un ficher A qui va me chercher une colonne dans un fichier B
Et lorsque j'excute mon code j'ai cette belle fenetre qui me dit ERREUR 438 propritété ou méthode non geré par cet objet.

Je ne peux pas mettre en ligne les fichiers mais voici le bout de code que j'ai :

Var_Chemin = Application.GetOpenFilename("Database File (*.xlsm), *.xlsm")
            
FichierCible = ActiveWorkbook.Name
Workbooks.Open Var_Chemin, 0, ReadOnly:=False
            
FichierSource = ActiveWorkbook.Name
                
' Copie les colonnes a partir des lignes 10 du fichier B pour les mettre à partir de la ligne 2 dans les colonnes voulues dans le fichier A
ColB = Workbooks(FichierSource).Sheets("results").Find(what:="TIME", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext) 'la ligne que pointe le debogage 
derligB = Workbooks(FichierSource).Sheets("results").Range(Cells(Rows.Count, ColB)).End(xlUp).Row 'Temps
'Range("B" & Rows.Count)
'Range(Cells(Rows.Count,CelB)
Workbooks(FichierSource).Sheets("results").Range(Cells(10, ColB), Cells(derligB, ColB)).Copy Workbooks(FichierCible).Sheets("T1-A").Range("A2").Resize(derligB - 10)
Workbooks(FichierSource).Sheets("results").Range("B10:B" & derligB).Copy Workbooks(FichierCible).Sheets("T2-A").Range("A2").Resize(derligB - 10)
'Range("B10:B" & derligB)
'Range(Cells(10,CelB),Cells(derligB,CelB))


je pense que cela doit venir de ma méthode FIND mais je ne sais pas comment résoudre le problème!

Avant mon code fonctionnait très bien mais dans le fichier B, j'ai su que les colonnes pouvait changer de place selon les versions mais que les noms des colonnes étaient fixe, mon but était de repérer la colonne par con nom pour la prendre et la coller dans mon fichier A
j'espère avoir donné assez de détails


Merci par avance de votre aide

Feudora

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 4/11/2016 à 13:46
Bonjour,

.Sheets("results").Cells.Find


La vous obtenez "TIME" dans ColB
    ColB = Workbooks(FichierSource).Sheets("results").Cells.Find(What:="TIME", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext) 'la ligne que pointe le debogage



Si vous voulez le numero de colonne
    ColB = Workbooks(FichierSource).Sheets("results").Cells.Find(What:="TIME", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext).Column 'la ligne que pointe le debogage
1
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
4 nov. 2016 à 13:47
Je vais tester cela de ce pas !
Merci !
0
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
4 nov. 2016 à 13:51
Cela fonctionne , mais puis je abuser de votre savoir encore une fois , j'ai une erreur 1004 sur la ligne après mon ColB

derligB = Workbooks(FichierSource).Sheets("results").Range(Cells(Rows.Count, ColB)).End(xlUp).Row 'Temps


Cela vient il du Rows.count?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
4 nov. 2016 à 13:59
Re,

Quelle ligne avez vous prise pour ColB= , apparemment la premiere et comme il vous faut le numero de colonne, faut prendre la deuxieme avec Column
0
Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
4 nov. 2016 à 14:08
J'ai bien pris la deuxieme pour ColB vu qu'il me faut un numéro de colone les lignes de mon code donne ça maintenant :

ColB = Workbooks(FichierSource).Sheets("results").Cells.Find(What:="TIME", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext).Column
derligB = Workbooks(FichierSource).Sheets("results").Range(Cells(Rows.Count, ColB)).End(xlUp).Row 'Temps
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Feudora Messages postés 81 Date d'inscription mardi 5 juillet 2016 Statut Membre Dernière intervention 2 décembre 2016
4 nov. 2016 à 14:31
Re,

derligB = Workbooks(FichierSource).Sheets("results").Columns(ColB).Cells(Rows.Count, 1).End(xlUp).Row  'Temps
0