erreur d'execution code vba Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
loicd181
Membre habitué
Membre habitué
Messages : 104
Inscrit le : 13 juin 2016
Version d'Excel : 2013 EN / 2016 FR

Message par loicd181 » 13 juin 2016, 12:59

Salut tout le monde,

Je suis sur un projet et ai fait ce code VBA
Sub try()
For i = 2 To 1201
    For j = 1 To 8
        For k = 2 To 1478
            If Worksheets("aircraft tree").Cells(i, j).Select = Worksheets("aircraft tree").Cells(k, 10).Select Then
                Worksheets("Sheet4").Cells(i, j).Select = Worksheets("aircraft tree").Cells(k, 11).Select
            End If
        Next k
    Next j
Next i
End Sub

Le soucis c'est que le compilateur ne veut pas l'accepter...
Les données dans les cases sont du types 1.1.1.1.1.6 ou 1.2.3.1 (c'est pour numéroter des pièces) ou alors 00191N02 (le numero de construction)
L'objectif est de constuire un abre de construction avec les numéro de construction à partir de l'arbre de numéro de pièce.

Est ce que qq'un aurait une idée du problème ?

Merci d'avance !
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'375
Appréciations reçues : 112
Inscrit le : 27 avril 2007
Version d'Excel : Office 365, Mac 2011

Message par Dan » 13 juin 2016, 13:04

Bonjour

Enlève déjà tous les .select puis reteste
Oublie pas d'enlever le point devant le SELECT

Crdlt
@+ Dan ;)
l
loicd181
Membre habitué
Membre habitué
Messages : 104
Inscrit le : 13 juin 2016
Version d'Excel : 2013 EN / 2016 FR

Message par loicd181 » 13 juin 2016, 13:09

Merci beaucoup pour la réponse rapide ! :)

Je pense que ça va fonctionner mais le temps de calcul à l'air d'être très très long !^^
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'375
Appréciations reçues : 112
Inscrit le : 27 avril 2007
Version d'Excel : Office 365, Mac 2011

Message par Dan » 13 juin 2016, 13:17

re

Ah ben logique vu qu'il y a trois boucles imbriquées. Faut peut être voir cela autrement

Sinon si ok et que cette demande est solutionnée, oublie pas de clôturer le fil en cliquant sur le V vert à coté du bouton Editer

Cordialement
@+ Dan ;)
l
loicd181
Membre habitué
Membre habitué
Messages : 104
Inscrit le : 13 juin 2016
Version d'Excel : 2013 EN / 2016 FR

Message par loicd181 » 13 juin 2016, 13:22

Selon moi ces boucles sont les plus faciles mais vu que je débute je cherche un peu... :(

Il y a t il une solution pour optimiser le temps de calcul ?

Je penserai a le cloturer mais je dois complexifier petit à petit donc je vais surement avoir encore besoin d'aide ! :)
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'375
Appréciations reçues : 112
Inscrit le : 27 avril 2007
Version d'Excel : Office 365, Mac 2011

Message par Dan » 13 juin 2016, 13:25

Re
Il y a t il une solution pour optimiser le temps de calcul ?
Oui cela peut être possible mais sans fichier c'est pas évident de proposer quelque chose

Possible de l'avoir (sans données confidentielles)

Crdlt
@+ Dan ;)
l
loicd181
Membre habitué
Membre habitué
Messages : 104
Inscrit le : 13 juin 2016
Version d'Excel : 2013 EN / 2016 FR

Message par loicd181 » 13 juin 2016, 13:35

Je continu mon code...

J'ai maintenant l'erreur "Run-time error '1004': Application-defined or objet-defined error"

Sub try()
For i = 2 To 1201
For j = 1 To 8
For k = 2 To 1478
If Worksheets("aircraft tree").Cells(i, j).Select = Worksheets("aircraft tree").Cells(k, 10).Select Then
Worksheets("Sheet4").Cells(i, j).Select = Worksheets("aircraft tree").Cells(k, 11).Select
End If
Next k
Next j
Next i
End Sub


Le code est à jour et l'erreur semble est sur la ligne 6 mais sans certitude...

Une idée svp ? :)
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'459
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 13 juin 2016, 13:37

tu as remis des "select"
l
loicd181
Membre habitué
Membre habitué
Messages : 104
Inscrit le : 13 juin 2016
Version d'Excel : 2013 EN / 2016 FR

Message par loicd181 » 13 juin 2016, 13:41

Autant pour moi j'ai mis le mauvais code :

Sub try()
For i = 2 To 1201
For j = 1 To 8
For k = 2 To 1478
If Worksheets("aircraft tree").Cells(i, j) = Worksheets("aircraft tree").Cells(k, 10) Then
If IsEmpty(Worksheets("aircraft tree").Cells(h, 11)) = True Then
Worksheets("Sheet4").Cells(i, j) = Worksheets("aircraft tree").Cells(k, 12)
ElseIf IsEmpty(Worksheets("aircraft tree").Cells(h, 11)) = False Then
Worksheets("Sheet4").Cells(i, j) = Right(Worksheets("aircraft tree").Cells(k, 11), 8 )
End If
End If
Next k
Next j
Next i
End Sub

C'est celui ci qui a une erreur 1004 !

Merci :D
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'459
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 13 juin 2016, 13:49

bonjour,


h ne contient pas un numéro de ligne valable (h n'est pas initialisé) dans l'instruction
If IsEmpty(Worksheets("aircraft tree").Cells(h, 11)) = True Then
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message