Select case

Résolu/Fermé
Benoit - Modifié par Benoit le 11/06/2014 à 13:58
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 17 juin 2014 à 10:58
Bonjour, je vous contact suite à un soucis avec le select case de mon programme.



Tout d'abord j'ai une base de donnée dans la feuille "A", que je renomme directement Tableau_générale. J'effectue ensuite un filtrage des messages d'alerte en copiant les lignes correspondant à des messages d'erreur dans une nouvelle feuille que je nommes "A".




J'utilise un select case afin de comparer chaque case de la colonne C avec les messages d'erreur préalablement répertorier dans le programme.




Le problème est qu'il oublie de copier certains messages d'erreur, je bloque dessus pas mal de temps donc j'imagine que je n'ai pas assé de recul pour voir mon erreur ou mes erreurs, un petit coup de main de votre part serait le bienvenu :)




Je vous joint une partie de la base de donnée avec la partie du code posant problème.








Sub AU9_filtrage()

'Annule l'actualisation de l'affichage et accélère la macro

Application.ScreenUpdating = False

'""""""""""""""""""""""""""""""""Ce filtre va permettre de récupérer tous les messages d'arrêt de la machine, afin d'éviter toutes les messages d'avertissement qui sont en surplus sur les graphiques"""""""""""""""""""""""""""""""""""

Dim DernLigne As Long
Dim j As Long
j = 1
K = 1

'Changement de nom du tableau A en Tableau général

Worksheets("A").Name = "Tableau_général"

'ajout d'une feuille

Set shtoto = Sheets.Add(After:=Sheets(Sheets.Count))
shtoto.Name = "A"

'dernière ligne
Sheets("Tableau_général").Select
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
Set MaPlage = Columns("A:E").Rows(K)
MaPlage.Copy _
Destination:=Worksheets("A").Range("A" & j)
j = j + 1

For i = 1 To DernLigne

Select Case Range("C" & i)

'copie des messages d'arrêt du poste Anneau

Case "DEF: Var. anneau en alarme(Out1=ON)", "DEF: Var. anneau pas pret(Out6=OFF)", "DEF: Manque position index anneau", "DEF: Timeout DCY Anneau. (Out6=ON)", "DEF: Timeout FCY Anneau. Out6=OFF)", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Manque tete de marquage en position", "DEF: Manque robot 2 hors zone anneau", "DEF: Manque conformateur en origine", "DEF: Prs anorm info Galaxy ringturnOk", "DEF: Manque info Galaxy ringturnOk", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque tete de marquage en position"


Set MaPlage = Columns("A:E").Rows(i)
MaPlage.Copy _
Destination:=Worksheets("A").Range("A" & j)
j = j + 1

Case "DEF : Manque robot 1 hors zone anneau"
Set MaPlage = Columns("A:E").Rows(i)
MaPlage.Copy _
Destination:=Worksheets("A").Range("A" & j)
j = j + 1





End Sub




Poste / Sous ensemble Code Message Date Heure

Distribution 1 52 Bourrage bol ou rail vide depuis trop longtemps 27/05/2014 10:11:17
Distribution 2 52 Bourrage bol ou rail vide depuis trop longtemps 27/05/2014 10:07:59
Distribution 3 52 Bourrage bol ou rail vide depuis trop longtemps 27/05/2014 10:06:09
Distribution 1 52 Bourrage bol ou rail vide depuis trop longtemps 27/05/2014 10:00:32
Anneau 6 DEF: Manque robot 1 hors zone anneau 27/05/2014 09:58:41


Par exemple j'ai bien ces messages d'erreur du poste anneau dans ma base de donnée mais rien n'y fait ça ne veut toujours pas faire ce que je demande ^^



Merci d'avance

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 juin 2014 à 07:49
Bonjour,

mais ça n'a pas réglé mon soucis du départ
Ben non. Il s'agissait d'un premier jet... Ton souci de départ et simple, il s'agit d'erreurs de saisie... Pour en tenir compte, il faut avancer pas à pas. D'autant plus que, je te le rappelle, je ne disposes pas de ton classeur complet.

Voici donc un deuxième jet.
Déclare cette variable en tête de module (au dessus de Sub AU9_Général()) :

 Dim CodesAcopier As Variant

Puis place ces deux codes à la place de Sub AU9_filtrage()
Sub AU9_filtrage()
'Annule l'acutualisation de l'affichage et accelère la macro
 Application.ScreenUpdating = False
'""""""""""""""""""""""""""""""""Ce filtre va permettre de recuperer tous les messages d'arrêt de la machine, afin d'éviter toutes les messages d'avertissement qui sont en surplus sur les graphiques"""""""""""""""""""""""""""""""""""
Dim shtoto As Worksheet
Dim DernLigne As Long
Dim j As Long, i As Long, k As Byte
Dim Donnees(), T_Out()
'liste de tous les codes dont tu dois copier les lignes :
CodesAcopier = Array("ARRET D 'URGENCE (REARMER PAR ACQ.DEF)", "ARRET D 'URGENCE (REARMER PAR ACQ.DEF)", "REARMEMENT PUISSANCE BRAS EN COURS...", "MANQUE LE MODE COMP.POWER DU MCP", "MANQUE LA PRESENCE AIR", "APPUYER SUR CLR/ERR du MCP", "ATTENTE DEPART CYCLE", "INSTALLATION EN CYCLE AUTOMATIQUE", "ATTENTE FIN DE CYCLE", "ATTENTE DCY pour CALIBRATION", "METTRE ROBOT 1 EN REPLI MANUELLEMENT", "CALIBRATION EN COURS", "INSTALLATION EN MANU", "BP ARRET CYCLE VERROUILLE", "METTRE ROBOT 2 EN REPLI MANUELLEMENT", _
"PORTE(S) OUVERTE(S)  (REARMER PAR ACQ.DEF)", "EN PAUSE!, ouverture porte possible", "ATTENTE LANCEMENT DE GALAXY", _
"DEF: Abs anorm Fc Sorti", "DEF: Prs anorm Fc Rentre", "DEF: Prs anorm Fc Rentre (blocage)", "DEF: Abs anorm Fc Rentre", "DEF: Prs anorm Fc Sorti", "DEF: Prs anorm Fc Sorti (blocage)", "DEF: Detection anormale pce av insert", "DEF: Piece pour prise non detectee", _
"DEF:Robot hors zone repli", "DEF:Le robot 1 n'est pas au repli", "DEF: Mauvaise configuration coude robot", "DEF:Oubli piece sur separateur ou venturi outil 1 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 2 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 3 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 4 defaillant", "DEF:Oubli piece sur separateur ou venturi outil defaillant", "DEF: 3 defauts manque insert consecutifs", _
"DEF:  Abs anorm Fc Sorti", "DEF:  Prs anorm Fc Rentre", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF:  Abs anorm Fc Rentre", "DEF:  Prs anorm Fc Sorti", "DEF:  Prs anorm Fc Sorti (blocage)", "DEF: Manque info anneau en position", "DEF: Code couleur superv. non valide", "DEF: Erreur dans la commande SW8!!!", "DEF: Erreur dans la requete !!!", "DEF: Erreur traitement vision poste 2", "DEF: Echec contrele vision poste 2!!!", "DEF: Pas de reponse camera poste 2!!!", "DEF: Erreur dans la commande SO1!!!", "DEF: Erreur dans la commande SO0!!!", "DEF: Erreur dans la commande GO!!!", "DEF: Erreur Emission/Reception !!!", "DEF: Choisir une reference        !!!", "DEF: Erreur dans la commande SI!!!", _
"DEF: Porte laser ouverte !", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF: Manque info Laser pret", "DEF: Manque laser en cycle (-e.ok.laser)", "DEF: Manque info anneau en position", _
"DEF: Manque info axe en mouvement", "DEF: Manque FC pos. origine (Gauche)", "DEF: Timeout sur  mouvement axe", "DEF: Timeout sur  mouvement axe", "DEF: Axe oriental marquage en erreur", "DEF:  Manque info axe en mouvement", "DEF: Messager ADAGE en erreur", "DEF: Faire prise origine pour init", "DEF: Manque info anneau en position", "DEF: Manque retombee ADAGE Pret", "DEF: Mqe retombee ADAGE Pret (CYCLE)", "DEF: Imprimante Image en erreur", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Presence anormale tete en mouvt", "DEF: Presence anormale tete en mouvt", "DEF: Perte position fin de course", "DEF: Posage non detecte pendant mouvt", "DEF: Manque Fc position (Droite)", "DEF: Mqe info ADAGE conf gauche/droite", "DEF: Arret Urgence, faire BP ACQUIT", _
"DEF: Porte laser ouverte !", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF: Manque info Laser pret", "DEF: Manque laser en cycle (-e.ok.laser)", "DEF: Manque info anneau en position", _
"DEF:Robot hors zone repli", "DEF: Le robot 2 n'est pas au repli", "DEF: Mauvaise configuration coude robot", "DEF:Oubli piece sur plateau ou venturi outil 1 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 2 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 3 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 4 defaillant", "DEF:Oubli piece sur plateau ou venturi outil defaillant", "DEF: Manque info outil vide", _
"DEF: Le posage devrait etre vide !", "DEF: Manque piece dans posage !", "DEF: Piece instruse dans posage!", "DEF: Piece oubliee dans le posage !", "DEF: Manque info anneau en position", _
"DEF: Var. anneau en alarme(Out1=ON)", "DEF: Var. anneau pas pret(Out6=OFF)", "DEF: Manque position index anneau", "DEF: Timeout DCY Anneau. (Out6=ON)", "DEF: Timeout FCY Anneau.  Out6=OFF)", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Manque tete de marquage en position", "DEF: Manque robot 2 hors zone anneau", "DEF: Manque conformateur en origine", "DEF: Prs anorm info Galaxy ringturnOk", "DEF: Manque info Galaxy ringturnOk", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque tete de marquage en position", _
"DEF: Manque robot 1 hors zone anneau ", _
"DEF: Absence anormale index plateau", "DEF: Presence anormale index plateau", "DEF: Barrette mal posee sur plateau", "DEF: Manque robot 2 hors zone plateau", "DEF: Manque bras mag horszone plateau", "DEF: Manque bras manip. en origine", "DEF: Prs anorm Galaxy barretteturnOk", "DEF: Manque Info Galaxy barretteTurnOK", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", _
"DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque presence air", "DEF: Double pilotage sorties !", "DEF: Aucune sortie pilotee !", "DEF: Abs anorm Fc Sorti separateur", "DEF: Prs anormale Fc rentre separat.", "DEF: Prs anorm Fc Rentre (blocage)sep", "DEF: Abs anorm Fc Rentre separateur", "DEF: Prs anorm Fc Sorti separateur", "DEF: Prs anorm Fc Sorti (blocage) sep", "DEF: Prs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc pince 1 ouverte", "DEF: Prs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc pinces ouvertes", "DEF: Abs anorm Fc pince 1 ouverte", "DEF: Abs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc Sorti butees", "DEF: Prs anormale Fc rentre butees", "DEF: Prs anorm Fc Rentre (blocage)but", "DEF: Abs anorm Fc Rentre butees", "DEF: Prs anorm Fc Sorti butees", "DEF: Prs anorm Fc Sorti (blocage) but", "DEF: Abs anorm Fc Sorti transfert", "DEF: Prs anormale Fc rentre transf.", _
"DEF: Prs anorm Fc Rentre(blocage)trsf", "DEF: Abs anorm Fc ref prise magasin", "DEF: Abs anorm Fc Rentre transfert", "DEF: Prs anorm Fc Sorti transfert", "DEF: Prs anorm Fc Sorti(blocage) trsf", "DEF: Prs anorm Fc ref prise magasin", "DEF: Prs anorm Fc ref mag (blocage)", "DEF: Abs anorm Fc rotation magasin", "DEF: Prs anorm Fc rotation plateau", "DEF: Prs anorm Fc rot plt (blocage)", "DEF: Abs anorm Fc rotation plateau", "DEF: Prs anorm Fc rotation magasin", "DEF: Prs anorm Fc rot mag (blocage)", "DEF: Abs barret./plateau ou mal posee", "DEF: Abs barret./plateau ou mal posee", "DEF: Abs barret./plateau ou mal posee", _
"DEF: Abs anorm Fc Sorti Elevateur", "DEF: Prs anorm Fc Rentre Elevateur", "DEF: Prs anorm Fc Rentre Elev(blocage", "DEF: Abs anorm Fc Rentre Elevateur", "DEF: Prs anorm Fc Sorti Elevateur", "DEF: Manque manipulateur en origine", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque presence air", "DEF: Ensacheuse 2 AB255 en defaut", "DEF: BP Arret tapis actif, MANIP en PAUSE !", "DEF: donnees: unloadbarrette = 0", "DEF: Abs anorm Fc rotation dechargt", "DEF: Prs anorm Fc rotation chargement", "DEF: Prs anorm Fc rot.chargt(blocage)", "DEF: Double pilotage des sorties !", "DEF: Aucune sortie pilotee !", _
"DEF: Prs anorm Fc Sorti Elev(blocage)", "DEF: Prs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc pince 1 ouverte", "DEF: Prs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc Sorti redresseur", "DEF: Manque info plateau indexe", "DEF: Manque ensacheuse 2 AB255 prete", "DEF: Manque ensacheuse 2 AB255 en cycle", "DEF: Barrette oubliee sur plateau", "DEF: Manque imprimante AB255 prete", "DEF: Abs anorm Fc pince 1 ouverte", "DEF:Abs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc Sorti Rotation", "DEF: Prs anorm Fc rotation plateau", "DEF: Prs anorm Fc rot. plat(blocage)", "DEF: Abs anorm Fc Sorti redresseur", "DEF: Prs anorm Fc Rentre redresseur", "DEF: Prs anorm Fc Rentre redresseur", "DEF: Abs anorm Fc Rentre redresseur", "DEF: Prs anorm Fc Sorti redresseur", _
"DEF: Manque ensacheuse 1 AB180 prete", "DEF: Manque info destination chapelet", "DEF: Manque ensacheuse 1 AB180 en cycle", _
"DEF: Manque ensacheuse 1 AB255 prete", "DEF: Manque ensacheuse 1 AB255 en cycle")

'Changement de nom du tableau A en Tableau général
'Worksheets("A").Name = "Tableau_général"

'ajout d'une feuille
Set shtoto = Sheets.Add(After:=Sheets(Sheets.Count))
shtoto.Name = "A"

'dernière ligne
With Sheets("Tableau_général")
  DernLigne = .Range("C" & Rows.Count).End(xlUp).Row
  Donnees = .Range("A2:E" & DernLigne).Value
  .Range("A1:E1").Copy Destination:=Worksheets("A").Range("A1")
End With
For i = LBound(Donnees, 1) To UBound(Donnees, 1)
    If Bon_A_Copier(CStr(Donnees(i, 3))) Then
        j = j + 1
        ReDim Preserve T_Out(1 To 5, 1 To j)
        For k = 1 To 5
            T_Out(k, j) = Donnees(i, k)
        Next k
    End If
Next i
Worksheets("A").Range("A2").Resize(UBound(T_Out, 1), 5) = Application.Transpose(T_Out)
End Sub


Function Bon_A_Copier(Message As String) As Boolean
Dim i As Long
Bon_A_Copier = False
For i = LBound(CodesAcopier) To UBound(CodesAcopier)
  If Message Like "*" & CodesAcopier(i) & "*" Then
    Bon_A_Copier = True
    Exit For
  End If
Next i
End Function 


Et tiens moi informé des suites à donner.
1
Merci beaucoup !! ça raccourcis et accélère mon programme par contre je viens de changer toute les données à coder en ajoutant les espaces manquant et je remarque que le programme ne me copie que 4 ou 5 messages d'alerte
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 juin 2014 à 10:27
par contre je viens de changer toute les données à coder en ajoutant les espaces manquant et je remarque que le programme ne me copie que 4 ou 5 messages d'alerte

Peux tu me refaire parvenir un fichier pour tests?
0
Voici le lien : http://cjoint.com/data3/3Fmlc7wsPMm.htm
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 juin 2014 à 11:15
Oups!
Erreur d'inattention...
Je suis un âne... ^^

Remplacer :
Worksheets("A").Range("A2").Resize(UBound(T_Out, 1), 5) = Application.Transpose(T_Out)

par :
Worksheets("A").Range("A2").Resize(UBound(T_Out, 2), 5) = Application.Transpose(T_Out)


Oui, je sais, la nuance est subtile, mais un 1 à la place d'un 2 ça ne le fait pas en programmation.....
0
ça marche parfaitement !! Merci beaucoup de ton aide pijaku :)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
11 juin 2014 à 14:09
Bonjour,

Je suppose que tu n'as pas mis tout ton code, car il manque certaines lignes indispensables telles que :
End Select
Next

Ensuite, le traitement de tes deux cas étant le même : copier la même plage et la coller au même endroit, le Select Case devient inutile.
Pour ça, je crois que tu n'as pas tout mis.

Ton souci peut venir tout simplement d'une erreur de saisie dans ta feuille. Si tu as un espace (par exemple) supplémentaire dans le texte de ta cellule, le Select Case ne fonctionnera pas, ou mal en tout cas...

Vérifies déjà cela et reviens le cas échéant.
0
Oui, excuse moi j'ai pas mis tout mon code mais si t'en as besoin je peux le mettre.

J'ai du mal m'exprimer concernant le fonctionnement de la macro mais je ne copie pas la même plage dans la même feuille. Le fichier que le logiciel sort est un fichier Excel contenant la base de donnée dans une feuille déjà nommée "A", je renomme cette 1ere feuille en "Tableau_général" car j'ai besoin d'une feuille avec le nom "A" (contenant les messages filtrer) afin que toute la suite de mon programme puisse suivre ( je l'avais déjà fait comme ça avant,pour faire les graphiques).

Le problème ne vient pas d'un espace ou d'une erreur de frappe, j'ai copier coller les erreurs telles quelles sont écrient par le logiciel et je viens de le ré effectuer.

En pas à pas je remarque que la macro effectue bien la comparaison pourtant. D'ailleurs aucun messages d'erreur de la partie anneau n'est copié.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
11 juin 2014 à 14:52
Dans ce cas, pourrais tu nous faire parvenir (via cjoint par exemple) une copie d'une partie de ton classeur sans données confidentielles?
N'oublie pas de venir coller ici le lien fournit par cjoint
0
Voici le lien : http://cjoint.com/data3/3FlpdtNpJMz.htm

Je n'y ai mis qu'une petite partie du tableau, normalement il y a environ 65000 lignes
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
11 juin 2014 à 15:13
Dans l'exemple transmis, la cellule C6 comporte un espace en fin de texte :
"DEF: Manque robot 1 hors zone anneau "
au lieu de :
"DEF: Manque robot 1 hors zone anneau"

Bon, comme tu ne peux pas vérifier 65000 lignes de saisie, il convient de trouver une alternative.

Cependant, le problème est également plus complexe car ce genre de filtre, tel que tu le fais, sur 65000 lignes doit être long... Très long!

Donc, peux tu me donner le code complet de ta macro que je regarde ça de plus près avec ton fichier test?
0
Au niveau du temps je trouve ça relativement asser rapide.

Voici le lien du fichier : http://cjoint.com/data3/3FlpOJR72lq.htm
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
11 juin 2014 à 16:01
Dans ta macro : AU9_filtrage, les actions que tu effectues pour chaque Case sont les mêmes :
Set MaPlage = Columns("A:E").Rows(i)
MaPlage.Copy _
Destination:=Worksheets("A").Range("A" & j)
j = j + 1

Est ce donc utile?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 11/06/2014 à 16:45
Bon, voici un premier jet.
Teste le, je reviendrais demain...

ATTENTION, tu as des doublons dans tes codes............

Sub AU9_filtrage()
'Annule l'acutualisation de l'affichage et accelère la macro
 Application.ScreenUpdating = False
'""""""""""""""""""""""""""""""""Ce filtre va permettre de recuperer tous les messages d'arrêt de la machine, afin d'éviter toutes les messages d'avertissement qui sont en surplus sur les graphiques"""""""""""""""""""""""""""""""""""
Dim DernLigne As Long
Dim j As Long, i As Long
Dim CodesAcopier As Variant
Dim Pos As Variant
'liste de tous les codes dont tu dois copier les lignes :
CodesAcopier = Array("ARRET D 'URGENCE (REARMER PAR ACQ.DEF)", "ARRET D 'URGENCE (REARMER PAR ACQ.DEF)", "REARMEMENT PUISSANCE BRAS EN COURS...", "MANQUE LE MODE COMP.POWER DU MCP", "MANQUE LA PRESENCE AIR", "APPUYER SUR CLR/ERR du MCP", "ATTENTE DEPART CYCLE", "INSTALLATION EN CYCLE AUTOMATIQUE", "ATTENTE FIN DE CYCLE", "ATTENTE DCY pour CALIBRATION", "METTRE ROBOT 1 EN REPLI MANUELLEMENT", "CALIBRATION EN COURS", "INSTALLATION EN MANU", "BP ARRET CYCLE VERROUILLE", "METTRE ROBOT 2 EN REPLI MANUELLEMENT", _
"PORTE(S) OUVERTE(S)  (REARMER PAR ACQ.DEF)", "EN PAUSE!, ouverture porte possible", "ATTENTE LANCEMENT DE GALAXY", _
"DEF: Abs anorm Fc Sorti", "DEF: Prs anorm Fc Rentre", "DEF: Prs anorm Fc Rentre (blocage)", "DEF: Abs anorm Fc Rentre", "DEF: Prs anorm Fc Sorti", "DEF: Prs anorm Fc Sorti (blocage)", "DEF: Detection anormale pce av insert", "DEF: Piece pour prise non detectee", _
"DEF:Robot hors zone repli", "DEF:Le robot 1 n'est pas au repli", "DEF: Mauvaise configuration coude robot", "DEF:Oubli piece sur separateur ou venturi outil 1 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 2 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 3 defaillant", "DEF:Oubli piece sur separateur ou venturi outil 4 defaillant", "DEF:Oubli piece sur separateur ou venturi outil defaillant", "DEF: 3 defauts manque insert consecutifs", _
"DEF:  Abs anorm Fc Sorti", "DEF:  Prs anorm Fc Rentre", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF:  Abs anorm Fc Rentre", "DEF:  Prs anorm Fc Sorti", "DEF:  Prs anorm Fc Sorti (blocage)", "DEF: Manque info anneau en position", "DEF: Code couleur superv. non valide", "DEF: Erreur dans la commande SW8!!!", "DEF: Erreur dans la requete !!!", "DEF: Erreur traitement vision poste 2", "DEF: Echec contrele vision poste 2!!!", "DEF: Pas de reponse camera poste 2!!!", "DEF: Erreur dans la commande SO1!!!", "DEF: Erreur dans la commande SO0!!!", "DEF: Erreur dans la commande GO!!!", "DEF: Erreur Emission/Reception !!!", "DEF: Choisir une reference        !!!", "DEF: Erreur dans la commande SI!!!", _
"DEF: Porte laser ouverte !", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF: Manque info Laser pret", "DEF: Manque laser en cycle (-e.ok.laser)", "DEF: Manque info anneau en position", _
"DEF: Manque info axe en mouvement", "DEF: Manque FC pos. origine (Gauche)", "DEF: Timeout sur  mouvement axe", "DEF: Timeout sur  mouvement axe", "DEF: Axe oriental marquage en erreur", "DEF:  Manque info axe en mouvement", "DEF: Messager ADAGE en erreur", "DEF: Faire prise origine pour init", "DEF: Manque info anneau en position", "DEF: Manque retombee ADAGE Pret", "DEF: Mqe retombee ADAGE Pret (CYCLE)", "DEF: Imprimante Image en erreur", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Presence anormale tete en mouvt", "DEF: Presence anormale tete en mouvt", "DEF: Perte position fin de course", "DEF: Posage non detecte pendant mouvt", "DEF: Manque Fc position (Droite)", "DEF: Mqe info ADAGE conf gauche/droite", "DEF: Arret Urgence, faire BP ACQUIT", _
"DEF: Porte laser ouverte !", "DEF:  Prs anorm Fc Rentre (blocage)", "DEF: Manque info Laser pret", "DEF: Manque laser en cycle (-e.ok.laser)", "DEF: Manque info anneau en position", _
"DEF:Robot hors zone repli", "DEF: Le robot 2 n'est pas au repli", "DEF: Mauvaise configuration coude robot", "DEF:Oubli piece sur plateau ou venturi outil 1 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 2 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 3 defaillant", "DEF:Oubli piece sur plateau ou venturi outil 4 defaillant", "DEF:Oubli piece sur plateau ou venturi outil defaillant", "DEF: Manque info outil vide", _
"DEF: Le posage devrait etre vide !", "DEF: Manque piece dans posage !", "DEF: Piece instruse dans posage!", "DEF: Piece oubliee dans le posage !", "DEF: Manque info anneau en position", _
"DEF: Var. anneau en alarme(Out1=ON)", "DEF: Var. anneau pas pret(Out6=OFF)", "DEF: Manque position index anneau", "DEF: Timeout DCY Anneau. (Out6=ON)", "DEF: Timeout FCY Anneau.  Out6=OFF)", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Manque tete de marquage en position", "DEF: Manque robot 2 hors zone anneau", "DEF: Manque conformateur en origine", "DEF: Prs anorm info Galaxy ringturnOk", "DEF: Manque info Galaxy ringturnOk", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque tete de marquage en position", _
"DEF: Manque robot 1 hors zone anneau ", _
"DEF: Absence anormale index plateau", "DEF: Presence anormale index plateau", "DEF: Barrette mal posee sur plateau", "DEF: Manque robot 2 hors zone plateau", "DEF: Manque bras mag horszone plateau", "DEF: Manque bras manip. en origine", "DEF: Prs anorm Galaxy barretteturnOk", "DEF: Manque Info Galaxy barretteTurnOK", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", _
"DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque presence air", "DEF: Double pilotage sorties !", "DEF: Aucune sortie pilotee !", "DEF: Abs anorm Fc Sorti separateur", "DEF: Prs anormale Fc rentre separat.", "DEF: Prs anorm Fc Rentre (blocage)sep", "DEF: Abs anorm Fc Rentre separateur", "DEF: Prs anorm Fc Sorti separateur", "DEF: Prs anorm Fc Sorti (blocage) sep", "DEF: Prs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc pince 1 ouverte", "DEF: Prs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc pinces ouvertes", "DEF: Abs anorm Fc pince 1 ouverte", "DEF: Abs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc Sorti butees", "DEF: Prs anormale Fc rentre butees", "DEF: Prs anorm Fc Rentre (blocage)but", "DEF: Abs anorm Fc Rentre butees", "DEF: Prs anorm Fc Sorti butees", "DEF: Prs anorm Fc Sorti (blocage) but", "DEF: Abs anorm Fc Sorti transfert", "DEF: Prs anormale Fc rentre transf.", _
"DEF: Prs anorm Fc Rentre(blocage)trsf", "DEF: Abs anorm Fc ref prise magasin", "DEF: Abs anorm Fc Rentre transfert", "DEF: Prs anorm Fc Sorti transfert", "DEF: Prs anorm Fc Sorti(blocage) trsf", "DEF: Prs anorm Fc ref prise magasin", "DEF: Prs anorm Fc ref mag (blocage)", "DEF: Abs anorm Fc rotation magasin", "DEF: Prs anorm Fc rotation plateau", "DEF: Prs anorm Fc rot plt (blocage)", "DEF: Abs anorm Fc rotation plateau", "DEF: Prs anorm Fc rotation magasin", "DEF: Prs anorm Fc rot mag (blocage)", "DEF: Abs barret./plateau ou mal posee", "DEF: Abs barret./plateau ou mal posee", "DEF: Abs barret./plateau ou mal posee", _
"DEF: Abs anorm Fc Sorti Elevateur", "DEF: Prs anorm Fc Rentre Elevateur", "DEF: Prs anorm Fc Rentre Elev(blocage", "DEF: Abs anorm Fc Rentre Elevateur", "DEF: Prs anorm Fc Sorti Elevateur", "DEF: Manque manipulateur en origine", "DEF: Arret Urgence, faire BP ACQUIT", "DEF: Porte ouverte, faire BP ACQUIT", "DEF: Manque presence air", "DEF: Ensacheuse 2 AB255 en defaut", "DEF: BP Arret tapis actif, MANIP en PAUSE !", "DEF: donnees: unloadbarrette = 0", "DEF: Abs anorm Fc rotation dechargt", "DEF: Prs anorm Fc rotation chargement", "DEF: Prs anorm Fc rot.chargt(blocage)", "DEF: Double pilotage des sorties !", "DEF: Aucune sortie pilotee !", _
"DEF: Prs anorm Fc Sorti Elev(blocage)", "DEF: Prs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc pince 1 ouverte", "DEF: Prs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc pinces ouvertes", "DEF: Prs anorm Fc Sorti redresseur", "DEF: Manque info plateau indexe", "DEF: Manque ensacheuse 2 AB255 prete", "DEF: Manque ensacheuse 2 AB255 en cycle", "DEF: Barrette oubliee sur plateau", "DEF: Manque imprimante AB255 prete", "DEF: Abs anorm Fc pince 1 ouverte", "DEF:Abs anorm Fc pince 2 ouverte", "DEF: Abs anorm Fc Sorti Rotation", "DEF: Prs anorm Fc rotation plateau", "DEF: Prs anorm Fc rot. plat(blocage)", "DEF: Abs anorm Fc Sorti redresseur", "DEF: Prs anorm Fc Rentre redresseur", "DEF: Prs anorm Fc Rentre redresseur", "DEF: Abs anorm Fc Rentre redresseur", "DEF: Prs anorm Fc Sorti redresseur", _
"DEF: Manque ensacheuse 1 AB180 prete", "DEF: Manque info destination chapelet", "DEF: Manque ensacheuse 1 AB180 en cycle", _
"DEF: Manque ensacheuse 1 AB255 prete", "DEF: Manque ensacheuse 1 AB255 en cycle")
j = 1

'Changement de nom du tableau A en Tableau général
Worksheets("A").Name = "Tableau_général"

'ajout d'une feuille
Set shtoto = Sheets.Add(After:=Sheets(Sheets.Count))
shtoto.Name = "A"

'dernière ligne
Sheets("Tableau_général").Select
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
Set MaPlage = Columns("A:E").Rows(1)
MaPlage.Copy Destination:=Worksheets("A").Range("A" & j)
j = j + 1
For i = 1 To DernLigne
    Pos = Application.Match(Range("C" & i).Value, CodesAcopier, 0)
    If IsNumeric(Pos) Then
        Set MaPlage = Columns("A:E").Rows(i)
        MaPlage.Copy Destination:=Worksheets("A").Range("A" & j)
        j = j + 1
    End If
Next
End Sub


Cordialement,
Franck
0
ça fonctionne bien mais ça n'a pas réglé mon soucis du départ, s'il le faut je le ferais à la main mais j'aimerais quand même éviter de perdre du temps :)
0