erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

tomalstom64

XLDnaute Nouveau
Bonjour à tous,

Je travaille sur 2 fichiers excels en vba: Baselog.xlsm et tache_corrective.xls

Dans tache_corrective il y a environ une soixantaine de feuilles dont une qui se nomme "sommaire". Dans celle-ci la colonne E contient une soixantaine de liens menant à chaque feuille de ce fichier. Le but de la macro est de pouvoir copier les cellules J51, J52, J53 et J54 des soixantes feuilles dans les cellules AY, BA, FZ et GB de la feuille nommée Baselog du fichier Baselog.xlsm à condition que la colonne FC ou 160 du fichier Baselog.xlsm ne soit pas vide.

J'ai un souci avec mon code au niveau de la ligne en gras je ne sais plus quoi faire... L'erreur d'exécution 1004 apparaît sur la ligne en gras de mon code....

option explicit
Sub Remplissage_BaseLog()

Dim valeur As String
Dim ChDir As String
Dim I As Integer
Dim H As Integer
Dim K As Integer
Dim L As Integer


Sheets("parametrage").Select 'Sélection de la feuille paramétrage
valeur = Range("C22").Value 'Valeur vaut la cellule contenant le chemin d'accès du fichier
ChDir = Range("B22").Value
ActiveWorkbook.OpenLinks Range("B22").Value & valeur 'Le fichier de la cellule valeur est maintenant ouvert

Workbooks("BaseLog.xlsm").Activate
Sheets("BaseLog").Activate

For L = 1 To 5000

If (Cells(L, 160).Value <> "") Then 'Si la colonne FC n'est pas vide

'Activation du fichier Maintenance corrective
Workbooks("PP-TAB-S410-0014 tache corrective coffre POC-PO F en cours.xls").Activate

I = 2
For I = 2 To Worksheets.Count
Worksheets(I).Activate

H = 32
K = 9
For H = 32 To 10000
For K = 9 To 10000

If Sheets(I).Cells(H, K).Value = "Outillage" Then

Cells(H + 1, K).Value = Sheets("BaseLog").Range("AY" & L).Value
Cells(H + 2, K).Value = Sheets("BaseLog").Range("BA" & L).Value
Cells(H + 3, K).Value = Sheets("BaseLog").Range("FZ" & L).Value
Cells(H + 4, K).Value = Sheets("BaseLog").Range("GB" & L).Value

End If



Next K
K = K + 1

Next H
H = H + 1
Next I
Else
L = L + 1

End If
Next L
End Sub

Merci à tous pour votre aide
 

Nairolf

XLDnaute Accro
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

Salut tomalstom64,

J'ai essayé la partie de ton code concernée et ça fonctionne, envoie nous le fichier pour identifier plus facilement le problème sans avoir à refaire un fichier excel avec les bonnes données.

Il y a des lignes en trop sur ton code, les lignes soulignées étant des lignes inutiles:

option explicit
Sub Remplissage_BaseLog()

Dim valeur As String
Dim ChDir As String
Dim I As Integer
Dim H As Integer
Dim K As Integer
Dim L As Integer


Sheets("parametrage").Select 'Sélection de la feuille paramétrage
valeur = Range("C22").Value 'Valeur vaut la cellule contenant le chemin d'accès du fichier
ChDir = Range("B22").Value
ActiveWorkbook.OpenLinks Range("B22").Value & valeur 'Le fichier de la cellule valeur est maintenant ouvert

Workbooks("BaseLog.xlsm").Activate
Sheets("BaseLog").Activate

For L = 1 To 5000

If (Cells(L, 160).Value <> "") Then 'Si la colonne FC n'est pas vide

'Activation du fichier Maintenance corrective
Workbooks("PP-TAB-S410-0014 tache corrective coffre POC-PO F en cours.xls").Activate

I = 2
For I = 2 To Worksheets.Count
Worksheets(I).Activate

H = 32
K = 9

For H = 32 To 10000
For K = 9 To 10000

If Sheets(I).Cells(H, K).Value = "Outillage" Then

Cells(H + 1, K).Value = Sheets("BaseLog").Range("AY" & L).Value
Cells(H + 2, K).Value = Sheets("BaseLog").Range("BA" & L).Value
Cells(H + 3, K).Value = Sheets("BaseLog").Range("FZ" & L).Value
Cells(H + 4, K).Value = Sheets("BaseLog").Range("GB" & L).Value

End If



Next K
K = K + 1

Next H
H = H + 1
Next I
Else
L = L + 1

End If
Next L
End Sub
 

tomalstom64

XLDnaute Nouveau
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

C'est très gentil à vous d'avoir pris le soin de m'aider!! Le problème c'est que mon fichier est trop gros pour vous l'envoyer sur le forum je ne peux que l'envoyer par mail... Je vais enlever toutes ces lignes inutiles!! :)
 

kjin

XLDnaute Barbatruc
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

Bonjour,
Un vrai sacs de noeuds
Evites des variables telles que ChDir qui est aussi une instruction vba !
Utilises l'instruction Set pour référencer tes feuilles et classeurs, couplée à l'instruction With..End With, tu devrais y voir plus clair
Tu indiques vouloir exporter les valeurs vers le classeur baselog et dans la macro tu fais l'inverse
"A condition que la colonne 160 ne soit pas vide veut dire" quoi ?
Bref on y comprends rien....
Bref avec un petit effort d'explication et un fichier allégé (bah oui faut bosser), on devrait y voir plus clair
A+
kjin
 

Nairolf

XLDnaute Accro
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

tomalstom64, non tu n'as pas besoin de mettre L=L+1 ni le else car tu fais déjà une boucle sur L, donc si ta condition n'est pas vérifiée, il va juste zapper tes deux boucles sur H et K, et passer à l'incrément suivant de L.

Et "écoute" kjin, il a raison (il faut toujours faire confiance aux Barbatrucs ;))
 

tomalstom64

XLDnaute Nouveau
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

bonjour à tous,
sur une ligne de mon fichier Excel certaines valeurs sont identiques... Je voudrais donc supprimer tous les doublons de cette ligne et ne garder qu'une seule valeur... Je code en vba excel 2007. Merci d'avance!!!
 

tomalstom64

XLDnaute Nouveau
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

Bonjour à tous j'ai un autre souci vba :)

la ligne en gras m'indique: erreur 13: incompatibilité de type et je ne comprends pas pourquoi... j'ai tout bien déclaré pourtant...

BaseLog.Activate
BaseLog.Sheets("BaseLog").Select
compteur = 0

For j = vg_nomOutilspec1 To vg_nomOutilspec20
Cell = Cells(2, j).Value
'nbcol = Range(Cells(4, vg_nomOutilspec1), Cells(vgLigneMaxiBaseLog, vg_nomOutilspec20)).SpecialCells(xlCellTypeLastCell).Column

If Range(Cells(4, j), Cells(vgLigneMaxiBaseLog, j)) <> "" And Left(Cell, 4) = "Tool" Then

compteur = compteur + 1
End If

Next j

Merci d'avance
 

tomalstom64

XLDnaute Nouveau
Re : erreur d'éxécution 1004: erreur définie par l'application ou par l'objet

Bonjour tout le monde,

je vous présente mon souci:

j'ai un fichier excel contenant 30 feuilles
je souhaite traverser la colonne 5 de chaque feuille et compter le nombre de cellules non vides

Quelqu'un aurait-il une solution svp?

Merci d'avance :)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87