Excel 2003 - Macro - Liste automatique - recherche suivant format couleur -

Résolu
givemecookies Messages postés 32 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 4 août 2011 - 4 juil. 2011 à 19:42
givemecookies Messages postés 32 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 4 août 2011 - 6 juil. 2011 à 06:28
bonjour à toutes et à tous!

J'aimerais vos lumières pour un petit fichier que j'ai amélioré aujourd'hui mais j'ai quelques petit souci, pas de problèmes majeurs (je l'espère en tout cas).
Sur le fichier joint - CDE CAMION 2011
J'ai en fait 3 principales macros.

[*] Le premier bouton sur l'onglet "Extraction" va en fait prendre les données des onglets "agent" qui sont les onglet avec 2 lettres, et les regrouper sur la page "Macro" évidemment comme vous avez pu le constater dès qu'il y a un espace, il passe à l'onglet suivant. Sachant que l'espace me sers en fait de séparateur entre chaque jour, je n'ai pas encore réussi à faire une liste complète. un peu d'aide m'enlèvera une épine du pied :)

[*] Sur le deuxième bouton qui est un des plus important , il me permet d'affecter un numéro ( qui correspond en fait au numéro maximum du classeur + 1 ) si l'agent a mis un 'x' sous "numéro de camion". Cependant il est INCROYABLEMENT long puisque le fichier sera par la suite partagé!
Je me demandais si une âme généreuse aurait une idée pour réduire le temps de chargement. sans partage il prends 1-2 secondes et en partage il mets bien 30 à 90 voire 180 secondes.. je pense que le partage y est pour beaucoup mais j'espérais un peu plus rapide étant donné que mon code est assez simplissime et que je pense pouvoir faire mieux aux niveau de la passation de paramètres... (j'avais pensé à mettre une liste des onglets à prendre, mais je me suis pas encore vraiment penché à fond dessus)

[*] Enfin, le 3e bouton me permet en fait de garder un 'historique' de mes commandes. J'aimerais donc qu'en appuyant sur 'supprimer' les lignes en gris clair (couleur excel 2003) s'effacent (dans les tableaux des agents) et viennent se mettre dans la feuille "Synthèse", sans effacer les 'commandes' précédentes. Je suis en ce moment même en train de me brûler des neurones là dessus. Étant donnée que la macro enregistrée pour la recherche d'une case suivant son format de couleur n'est pas vraiment fonctionnelle lorsque l'on essaye de la ré-appliquée en vba... un peu d'aide serait la bienvenue également.

Je vous laisse donc jeter un œil à mon 'oeuvre'. Je suis désolée si un sujet similaire a été déjà posé, merci en tout cas de m'envoyer le lien.

Merci d'avance,
Jennifer

29 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 22:05
Tu vas te réveiller un peu, s'il te plait ?
Voilà une autre ligne à corriger (je t'avais pourtant mis syur la voie !)
LigneDestinationSurFeuilMacro = Worksheets("Synthèse").Range("A" & .Rows.Count).End(xlUp).Row + 1 'la prochaine ligne de destination

Tu la corriges, oui ?
(c'est toujours la même correction, qui est- à faire)

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 22:09
Ah pardon (pas vu que tu avais déjà corrigé).
Qu'est-ce qui "ne marche ^pas", maintenant ?Une erreur de compilation (laquelle) ?
Pas le résultat attendu ? (ça, c'est une autre affaire . Je me suis arrêté aux fautes de syntaxe et pas plus)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 22:27
Traduis-moi en langage naturel (le français) ce que tu veux faire exactement par cette instruction :
Cell.SpecialCells(xlCellTypeVisible).Cut


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
givemecookies Messages postés 32 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 4 août 2011
5 juil. 2011 à 22:34
re,
ouille je prends cher. oui effectivement j'avais tout remodifié.

par contre oui je pense que tu as raison, l'instruction :
Cell.SpecialCells(xlCellTypeVisible).Cut

est probablement pas juste..

je voulais faire dire que dans la plage, lorsqu'il trouve la cellule grise en question il coupe la ligne...

Merci en tout cas,
Jennifer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
5 juil. 2011 à 22:49
Salut,

tu es doué Jennifer, tu as pas mal avancé

Un petit conseil pour la partie de macro qui contient une boucle Do/Loop: dans ce type de boucle il est toujours préférable d'ajouter un Doevents qui permet sortir de la boucle par un appuis sur la touche échap. Même si ce n'est pas justifié ici le jour ou on reste coincé dans la boucle on est alors content de l'avoir ajouté !

Pour le code que je t'ai donné la méthode, utilise le filtre automatique d'excel pour ne travail que sur les lignes non vide.
Maplage.AutoFilter Field:=1, Criteria1:="<>"

Comme ce filtre automatique est activé j'ai ensuite utilisé une méthode qui permet de ne copier que les lignes visible, cette méthode est :
Maplage.SpecialCells(xlCellTypeVisible).Copy


Je regarde la suite et je reviens

A+
0
givemecookies Messages postés 32 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 4 août 2011
5 juil. 2011 à 22:52
bigfish,
oui en fait, j'avais bien compris ton code par contre j'ai essayé de faire ça à ma sauce mais ça n'a pas marché ...

j'ai essayé de changé avec row ou cell.entirerow ou meme avec Dim cell as cellformat en haut mais rien à faire pour l'instant,

Merci,
Jennifer
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 23:42
Sans préjudice de ton affaire des couleurs ====>> partie à transformer

 .....
    der Worksheets("Synthèse").Range("A" & Rows.Count).End(xlUp).Row '>> une fois pour toutes
    For Each Cell In Maplage
       If cell.Interior.ColorIndex = 3 Then
         If Not cell.EntireRow.Hidden = True Then
           der = der + 1
           cell.EntireRow.Cut Destination:=Worksheets("Synthèse").Range("A" & der)
           DoEvents
         End If
       End If
    Next
  End With
...


reste à espérer que la cvouleu est bien la 3 et pas autre !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 juil. 2011 à 00:04
BVon
Je viens de faire un petit test en supprimant la condition de couleur ===>> mon code est bon.

Si ne marche pas maintenant chez toi avec la condition de couleur, c'est que la couleur 3 n'est pas celle que tu recherches (et le problème est alors déplacé)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
givemecookies Messages postés 32 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 4 août 2011
6 juil. 2011 à 06:28
bonjour à vous deux,

Incroyable. c'est exactement ce que je recherchais ! Merci! je ne sais pas combien de temps j'aurais mis sans vous!

Un grand merci !
Une bonne journée,
Jennifer
0
Rejoignez-nous