> Tous les forums > Forum Bureautique
 AU SECOURS!!!! modification de macroSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
la reunion
  Posté le 16/08/2006 @ 15:45 
Aller en bas de la page 
Petite astucienne
bonjour je souhaiterais modifier la macro jointe de facon a ce que lorqu une personne est de service sa ligne complete se copie ds le deuxieme tableau comme le montre le 2eme tableau http://cjoint.com/?iqpODv5cd8 j ai essaye de supprime dispo+1 ca marche seulement il faudrait qu il me mette la ligne suivante en desous merci et a desuite j espere

Modifié par la reunion le 23/08/2006 15:35
Publicité
dixit
 Posté le 16/08/2006 à 20:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
re je n'avais pas vu cette question et finalement j'espère que mon dernier fichier répond correctement à ce qui est demandé. ps : sur le forum, il faut éviter de créér un nouveau sujet en parallèle du sujet en cours pour une question de même nature. a+
la reunion
 Posté le 23/08/2006 à 11:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
bonjour a tous[hello] pour la macro de debut de sujet c est bon mais la ,j aurais besoin que l on m aide pour modifier la macro qui se trouve dans le fichier jiont http://cjoint.com/?ixlwdJDl8e en effet actuellement elle cherche dans le tableau complet si quelqu un travail et me marque automatiquement son nom prenom etc.. dans la feuille 3 que faut il modifier dans la macro pour qu elle ne cherche que dans les colonnes samedi dimanche et jour ferie si quelqu un travail ne soyez pas etonnes, normalement les 2 tableaux sont dans des classeurs separes, c est pour cela que la macro fait reference a un dossier recap merci a tous d avance
Bérylion
 Posté le 24/08/2006 à 18:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

up voir réponse en MP sinon : http://cjoint.com/?iyrYjmCrU4 ... comme j'ai dit, je sais pas comment ça fonctionne donc je suis pas sur du résultat... à vérifier par DIXIT
galopin01
 Posté le 24/08/2006 à 18:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonjour, Tu peux essayer ça (sans aucune garantie : codé avec le pied, à la hache et non testé !)
... For b = 4 To 34 'pour colonnes 4 à 34 (la dernière pour mois de 31 jours) If YSDF(lign, b) Then texte = Cells(lign, b) ... ... Sheets(nomfeuille).Select End If End If Next b ...
En plus il faut rajouter cette macro :[code]Function YSDF(Row&, Col%) As Boolean YSDF = Cells(Row, Col).Interior.ColorIndex = 40 End Function[/code] A+
Bérylion
 Posté le 24/08/2006 à 20:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

galopin01 a écrit :
Bonjour, Tu peux essayer ça (sans aucune garantie : codé avec le pied, à la hache et non testé !)
... For b = 4 To 34 'pour colonnes 4 à 34 (la dernière pour mois de 31 jours) If YSDF(lign, b) Then texte = Cells(lign, b) ... ... Sheets(nomfeuille).Select End If End If Next b ...
En plus il faut rajouter cette macro :[code]Function YSDF(Row&, Col%) As Boolean YSDF = Cells(Row, Col).Interior.ColorIndex = 40 End Function[/code] A+
une seule ligne suffisait... [clindoeil]
galopin01
 Posté le 24/08/2006 à 20:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Salut Bérylion, Tout dépend ce qu'on cherche ! Ton raisonnement ne m'avais pas échappé mais il ya des moments ou on est obligé de faire des choix ! La question était :
elle ne cherche que dans les colonnes samedi dimanche et jour ferie
J'ai donc répondu à la question. Savoir laquelle des 2 méthodes est la meilleure ne se limite pas qu'au nombres de lignes dans la macro... Dans mon hypothèse je n'examine la condition <> "" que dans 5 cellules sur 7 environ Dans ton hypothèse tu examines la condition ColorIndex = 40 dans toutes les cellules non vides. Pour savoir qui fait le moins de tour de boucle, il faudrait connaitre le nombre précis de cellules non vide dans les cellules blanches et dans les cellules vides et faire une comparaison... Ou mettre un timer à l'exécution de chaque macro... C'est la raison pour laquelle je ne répond en général pas à ce genre de question assez flou ou il est difficile de distinguer le nécessaire, du mieux ou de l'essentiel. Je ne me suis forcé à répondre que parce que j'ai été sollicité par un MP. Enfin cerise sur le gateau, si mes réponses peuvent apporter un plus qui font progresser mon interlocuteur, je ne me prive pas : La petite fonction que j'y ai implanté était de cette nature : C'est mon style ! A+
galopin01
 Posté le 24/08/2006 à 20:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Pour (peut-être) expliquer plus simplement : Si tu es médecin et qu'on te demande d'isoler les enfants malades tu ne vas pas commencer par vérifier tous les individus pour voir s'ils sont malades, tu ne vas examiner que les enfants...
Bérylion
 Posté le 25/08/2006 à 08:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

galopin01 a écrit :
Salut Bérylion, Tout dépend ce qu'on cherche ! Ton raisonnement ne m'avais pas échappé mais il ya des moments ou on est obligé de faire des choix ! La question était :
elle ne cherche que dans les colonnes samedi dimanche et jour ferie
J'ai donc répondu à la question. Savoir laquelle des 2 méthodes est la meilleure ne se limite pas qu'au nombres de lignes dans la macro... Dans mon hypothèse je n'examine la condition <> "" que dans 5 cellules sur 7 environ Dans ton hypothèse tu examines la condition ColorIndex = 40 dans toutes les cellules non vides. Pour savoir qui fait le moins de tour de boucle, il faudrait connaitre le nombre précis de cellules non vide dans les cellules blanches et dans les cellules vides et faire une comparaison... Ou mettre un timer à l'exécution de chaque macro... C'est la raison pour laquelle je ne répond en général pas à ce genre de question assez flou ou il est difficile de distinguer le nécessaire, du mieux ou de l'essentiel. Je ne me suis forcé à répondre que parce que j'ai été sollicité par un MP. Enfin cerise sur le gateau, si mes réponses peuvent apporter un plus qui font progresser mon interlocuteur, je ne me prive pas : La petite fonction que j'y ai implanté était de cette nature : C'est mon style ! A+
[bigsmile] Me doutais bien que t'avais mis "tout ça" pour le plaisir... mais comme j'avais pas bien tout saisi la macro de dixit (ai pas suivi l'historique), j'ai "ratissé large" en testant toutes les cellules non vide [rougir] mais ta méthode est beaucoup plus fine, Doc' [clindoeil]
galopin01
 Posté le 25/08/2006 à 10:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonjour, Quand je tiens un os je ne le lache pas ! [bigsmile] J'ai mesuré avec un Timer les mérites comparés des uns et des autres : Afin d'obtenir des chiffres significatifs, le test à été fait sur 100 000 boucles effectives (Colonne 2 non vide) [img]http://perso.orange.fr/galopin01/images/Stats.jpg[/img] Les chiffres en blancs (on parle en seconde) montrent qu'il n'y a pas de différence significative entre les 2 méthodes. Par contre les chiffres en jaunes (cas ou il y a juste un concierge le WE) m'ont interrogés. J'en suis arrivé à la conclusion que ce qui bouffait le maximum de temps, ce n'est pas le nombre de boucles elles mêmes (le nombre de boucles étant à peu de chose près identique) mais c'est ce qu'il a à l'intérieur de la boucle ! J'ai donc regardé à l'intérieur de la boucle... et j'ai vu : Oh horreur ! Tout un tas de truc : des variables, un Select... J'ai donc remplacé tout l'intérieur de la boucle if par le code suivant :[code] datejour = Cells(3, b) ' ***** la date est ligne 1 datejour = Mid(datejour, 4, 3) + Left(datejour, 3) + Right(datejour, 4) With Workbooks(fichrecap).Sheets(nomfeuille) .Cells(dispo1, 1) = datejour .Cells(dispo1, 2) = Cells(lign, 1) .Cells(dispo1, 3) = Cells(lign, 2) .Cells(dispo1, 4) = Cells(lign, 3) .Cells(dispo1, 5) = texte End With dispo1 = dispo1 + 1 'pour incrémentation de ligne[/code] et ça donne les résultats en bleu ! Ce qui prouve à l'évidence que l'essentiel (du point de vue de l'optimisation), ce n'est pas les conditions de la boucle mais le contenu de cette boucle... A+
dixit
 Posté le 25/08/2006 à 20:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
bonsoir, pour information : le "cahier des charges" du demandeur n'est pas très stable !. je me retire du concours bon courage aux spécialistes. a+
galopin01
 Posté le 25/08/2006 à 22:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Ben... J'avais cru déceler également un léger flou dans la présentation, c'est pourquoi je ne me suis pas dépêché d'intervenir. Néanmoins notre amie n'est pas dépourvues de qualités : si elle veut bien faire quelques efforts pour nous présenter les choses de manière compréhensibles pour des neurones un peu usagés comme les miens, on trouvera peut-être un terrain d'entente ! A+
Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Lego Creator Exprert 10298 Vespa 125 à 76,90 €
76,90 € 99,99 € -23% @Cdiscount

Cdiscount fait une promotion sur le Lego Creator Exprert 10298 Vespa 125 qui passe à 76,90 € alors qu'on le trouve ailleurs à partir de 99,99 €.


Voir le bon plan
Graveuse laser SCULPFUN S9 (5.5W, 0,06 mm, 410x420 mm) à 207,82 €
207,82 € 329 € -37% @Geekbuying

Geekbuying fait une superbe promotion sur la graveuse laser SCULPFUN S9 qui passe à 207,82 € avec le code GKB23MS3 alors qu'on la trouve ailleurs à partir de 329 €. Cette machine de gravure laser va vous permettre de graver et découper le papier, le cuir, le bois, le bambou, la corne, le plastique, la céramique, l'acier, l'acrylique, ...

L'envoi se fait depuis un entrepôt européen. Vous êtes ainsi certains de recevoir l'enceinte rapidement et sans douane.


Voir le bon plan
16 Go de mémoire SODIMM DDR4 Crucial 3200 MHz à 40,79 €
40,79 € 65 € -37% @Amazon Allemagne

Amazon Allemagne fait une promotion sur le module de 16 Go de mémoire SODIMM DDR4 Crucial 3200 CL22 (CT16G4SFRA32A) qui passe à 37,81 €. Comptez 4,52 € pour la livraison en France soit un total de 42,33 € livré. On le trouve ailleurs à partir de 50 €. La RAM à 3200MHz peut être downclockée à 2933MHz ou 2666MHz si les spécifications du système ne prennent en charge que 2933MHz ou 2666MHz.

Le module de 8 Go est également en promotion à 23,41 € livré ainsi que le module de 32 Go à 66,72 € livré.

Une bonne affaire pour ces barrettes de mémoires adaptées aux ordinateurs portables, NUC, NAS, etc..


Voir le bon plan
Coupe-bordures Bosch EasyGrassCut 23 (23 cm, 280W) à 33,40 €
33,40 € 41 € -19% @Amazon

Amazon fait une promotion sur le coupe-bordures Bosch EasyGrassCut 23 (23 cm, 280W) qui passe à 33,40 € au lieu de plus de 41 € ailleurs.


Voir le bon plan
Adaptateur Bluetooth 5.0 USB TP-Link UB500 à 10,99 €
10,99 € 15 € -27% @Amazon

Amazon fait une promotion sur l'adaptateur Bluetooth 5.0 USB TP-Link UB500 qui passe à 10,99 €. Cet adaptateur à brancher sur un port USB va vous permettre d'ajouter le bluetooth à votre ordinateur et d'utiliser ensuite sans fil vos périphériques bluetooth : souris, clavier, casque, manette, téléphone, ...

L'adaptateur UB500 dote votre PC d'une technologie Bluetooth 5.0 plus avancée. Il offre des débits de connexion plus rapides et une portée plus étendue que la technologie Bluetooth 4.0. Rétrocompatible avec Bluetooth V4.0/3.0/2.1/2.0/1.1

C'est le récepteur que nous avons utilisé pour notre dossier pratique : Ajouter le bluetooth à son ordinateur.


Voir le bon plan
Pâte thermique Arctic MX-4 (4 g) à 4,44 €
4,44 € 6,99 € -36% @Amazon

Amazon fait une promotion sur la pâte thermique Arctic MX-4 (4 g) à 4,44 € au lieu de 6,99 €. La pâte thermique ARCTIC MX-4 composée de microparticules de carbone garantit une conductivité thermique extrêmement élevée. Ainsi, la chaleur du processeur ou des puces est dissipée rapidement et efficacement. Pour CPU et GPU PC, XBox, PS4, ...


Voir le bon plan

Sujets relatifs
Modification de macro - Importation de données
Modification d'une macro
Modification d'une macro
Modification sur Macro Excel
modification d'une macro excel
Lier un macro à la modification d'une cellule
2 pages par feuille dans macro excel
erreur macro
Recopie cellule par macro
macro pour comparer 2 listes
Plus de sujets relatifs à AU SECOURS!!!! modification de macro
 > Tous les forums > Forum Bureautique