Demande d'aide macro

Résolu/Fermé
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015 - 2 juil. 2015 à 11:37
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015 - 3 juil. 2015 à 15:43
Bonjour

Qui peut m'aider?
J'ai besoin de faire une macro car j'ai une tâche répétitive (sur 4 000 lignes), que je souhaite automatiser

Dans la feuille base
Pour chaque ligne où la colonne statut ne contient pas « Annulée » + la colonne produit 1 non vide
Alors : recopier dans l'onglet éclatement n°commande, la date et le produit 1.
Si la colonne produit 2 est non vide, alors dans l'onglet éclatement faire une ligne avec n°commande, la date et le produit 2.
Si la colonne produit 3 est non vide, alors dans l'onglet éclatement faire une ligne avec n°commande, la date et le produit 3.
Pour illustrer ma demande, voici le lien du fichier.
https://www.cjoint.com/c/EGcjKPej8lk


Merci à tous et à toutes celles qui prendront la peine de lire ma demande
A voir également:

7 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 juil. 2015 à 15:41
rien de tel qu'un petit siestou avant de bidouiller

ci joint proposition mais il n'y a pas assez de lignes pour tester la rapidité
http://www.cjoint.com/c/EGcnOyeoCKo
2
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 2/07/2015 à 12:01
Bonjour
ok c'est parti sois patient !
transféré dans forum VBA
1
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015
Modifié par personalite le 2/07/2015 à 12:02
Bonjour
Merci de te pencher sur la question
Oui c'est normal

car il faut que 2 conditions soient respectées :
la colonne statut ne contient pas « Annulée » + la colonne produit 1 non vide
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
Modifié par ccm81 le 2/07/2015 à 12:04
Bonjour

Une question
Dans la feuille base, tu as prévu des colonnes Produit 4, etc ...
Ces colonnes feront elles aussi l'objet d'un traitement ?

Cdlmnt
1
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015
2 juil. 2015 à 12:05
Bonjour et Merci de te pencher également sur ma demande
En tout je souhaite pouvoir aller jusque produit 5 pour le même traitement
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
2 juil. 2015 à 13:55
Un début de réponse, à tester

http://www.cjoint.com/c/EGcl2ZqGMwg

Michel (salut à toi) va certainement trouver quelque chose de plus rapide

Cdlmnt
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 juil. 2015 à 14:04
salut CCM
Après la sieste !
mais il faudrait que notre ami personalite fournisse un classeur avec beaucoup de lignes pour faire des test plus efficace
d'avance merci
0

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

Posez votre question
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015
2 juil. 2015 à 17:04
Merci à vous 2

ccm81 : ta proposition est super intéressante mais je bloque encore sur qq lignes (dans le fichier éclatement, je récupère 126 lignes mais pas plus, il doit y avoir un souci avec mon fichier initial qui contient 25 colonnes)
je dois continuer les tests et vous tiens au courant

michel : je ne comprends pas : quand je lance la macro, je n'ai rien qui s'affiche, que fais je de mal

en fait le fichier que je joins ressemble de très très loin au fichier sur lequel je bosse, car sur le véritable fichier il y a des infos confidentielles qui touche nos salariés. La seule info qui ne permet pas de faire le rapprochement avec mon entreprise est la date (elle est très connue dans ma région car elle a le monopole).

En tout cas merci merci merci merci qu'aurais je fais sans vous?

je ne clos pas maintenant juste au cas où je ne trouve pas ce qui bloque

je vous tiens au courant si cela ne vous dérange pas
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
2 juil. 2015 à 17:16
bonjour

manquait devant range !!! (mal réveillé) excuse moi

Start = Timer
Application.ScreenUpdating = False 'fige défilement de l'ecran--> confort, rapididité
Sheets("onséclatesurccm").Range("A2:D20000").Clear 'ettoyage feuille de restitutions
With Sheets("base")
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
'mémorisation en Ram feeuille base
T_base = .Range("A2:I" & Derlig)


j'en profité d'ajoutter une ligne pour aller dans la feuille de restitution
With Sheets("onséclatesurccm")
With .Range("A2:D" & Index + 1)
.Value = T_out
.Borders.Weight = xlThin
End With
.Activate
End With

0
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015
2 juil. 2015 à 17:26
ca fonctionne
J'apprécie que tu ai pris la peine d'expliquer les étapes de la macro ('partie en vert),
pour que je puisse la comprendre voire la modifier.

Promis bientôt je me mets au VBA
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
2 juil. 2015 à 17:29
environ 599 lignes au départ et 1589 à l'arrivée
pour 0.8 s pour ma macro
et 0.1 s pour celle de michel !!!
http://www.cjoint.com/c/EGcpAG2nwOg

Cdlmnt
0
personalite Messages postés 26 Date d'inscription lundi 29 juin 2015 Statut Membre Dernière intervention 17 août 2015
3 juil. 2015 à 15:43
merci à tous les deux ça marche du tonnerre
0