Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1488 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Copier des cellules sous conditions

n°1944254
Laoo
Posté le 24-11-2009 à 23:22:57  profilanswer
 

Reprise du message précédent :

lamiche37 a écrit :


 :??:  je veux justement pouvoir la recopier tant que je n'ai pas répondu "O" pour Oui donc pour certain travaux, plusieurs fois  :lol: afin que ça reste à l'écran (si je me fais bien comprendre  :pt1cable: )
 


 
non, pas du tout... :pt1cable:  
 
  Tu remplaces 1, qui signifiait: pas fait, à recopier, par "0", et tu me dis que cela signifiera "FAIT" ?????????????????????   Là je suis paumé, et ça ne va plus du tout ds la macro!!!!
 
Splique-moi, svp.
 
Dans ce cas, si "0" est le contraire de 1  (qui devient "N" ), il faut mettre alors:
 
If Target.Value <> "N" Then Exit Sub
 
qui signifie aussi : If Target.Value = "O" Then Exit Sub (mention inutile, impliquée par la précédente, indiqée pour l'exemple).
 
 
Autrement dit:  
Si j'écris "N", je recopie, si j'écris "O", je recopie PAS, je sors de la macro. Right?
 
 
 
Et si tu la recopies en bas de tableau pour qu'elle reste présente, tu ne veux pas supprimer la ligne d'origine, par hasard, ce qui serait ptêtre plus rationnel?  (genre: Target.entirerow.Delete)
 
 

Citation :


Je ne comprends pas le:

Citation :

Du genre Target.offset(0,1).Value="Vu"  (ou même Target.Value="Vu" )    à la fin, et au début:  
 
If Target.Value="Vu" Then Exit Sub

 


 
C'était pour signaler dans la ligne qu'elle avait été copiée...
 
 
Dors en paix, mon ami
 
 


---------------
Olympus OM-D  EM-5 + 14-42
mood
Publicité
Posté le 24-11-2009 à 23:22:57  profilanswer
 

n°1944283
lamiche37
Perdu dans la jungle PCHC
Posté le 25-11-2009 à 08:31:38  profilanswer
 

Bonjour,
 

Citation :

Autrement dit:  
Si j'écris "N", je recopie, si j'écris "O", je recopie PAS, je sors de la macro. Right?


 
C'est tout à fait ça  :jap:  
Et pour l'instant ça fonctionne avec:

Citation :

Private Sub Worksheet_Change(ByVal Target As Range)
   
   'Si on modifie une cellule autre que dans la colonne R ça ne fait rien
        If Target.Column <> 18 Then Exit Sub
   'Si on saisi autre chose que N en colonne R ca ne fait rien (comme suppr par ex)
        If Target.Value <> "N" Then Exit Sub
   
   'Recuperation de la ligne ou on saisi N
        RowSel = Target.Row
         
   'Récuperation de la derniere ligne, ou 1ere ligne vide
     RowFin = Range("G65536" ).End(xlUp).Row + 1
     
   'On copie de A à Q
       Range(Cells(RowFin, 1), Cells(RowFin, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value
       
 
   End Sub


 

Citation :


Et si tu la recopies en bas de tableau pour qu'elle reste présente, tu ne veux pas supprimer la ligne d'origine, par hasard, ce qui serait ptêtre plus rationnel?


 
Non puisque je veux pouvoir cumuler, afin de pouvoir détailler les jours et les heures de travail de chaque opération (ceci avec les filtres)  ;)  
 

Citation :

If Target.Value="Vu" Then Exit Sub  


Je comprends bien ce que tu veux dire, mais je ne comprends pas le pourquoi de :
 

Citation :

à la fin, et au début:


 
Encore Merci pour tout  :jap:  
 
Cordialement,
Michel

n°1944298
Laoo
Posté le 25-11-2009 à 09:50:45  profilanswer
 

Bonjour,    :hello:  
 

Citation :

Autrement dit:  
Si j'écris "N", je recopie, si j'écris "O", je recopie PAS, je sors de la macro. Right?
C'est tout à fait ça  :jap:  


 
Parfait, parfait.
 
 

Citation :


Non puisque je veux pouvoir cumuler, afin de pouvoir détailler les jours et les heures de travail de chaque opération (ceci avec les filtres)  ;)  


 
Ah, parfait, parfait.
 

Citation :


Je comprends bien ce que tu veux dire, mais je ne comprends pas le pourquoi de :
à la fin, et au début:


 
Ce qui  précédait     à la fin,  /////    et au début:    Ce qui  suivait  
mais laisse tomber, c'est sans objet
 

Citation :


Encore Merci pour tout  :jap:  


 
You're welcome, et tout à ton écoute pour d'autres demandes. (si je sais faire...)
 
 
Cordialement      :hello:    
 
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1946015
lamiche37
Perdu dans la jungle PCHC
Posté le 30-11-2009 à 17:47:42  profilanswer
 

Bonjour,
 
Et désolé de vous déranger de nouveau  
 
J'étais entrain de remplir mon planning pour le mois de décembre afin de faire un essai  :pt1cable:  
 
Et je m'aperçois que la macro ne fonctionne pas si je me sert de ma liste  :??:  
Je m'explique dans la colonne R si je veux avoir que le boulot que j'ai à faire, je vais dans ma liste et je mets "vide" et là je n'ai que mon boulot "non fait".
Mais malheureusement si je fais "n", là ça ne me recopie rien  :heink:  
Si je ne sert pas de la liste ça fonctionne impec  :jap:  
 
Y a t'il une solution possible  :??:  
 
D'avance Merci
 
Depuis j'ai trouvé 2 sites pour commencer à apprendre: Cours algorithmehttp://www.pise.info/algo/codage.htm et cours VB http://www.pise.info/vb-net/00.htm
 
Cordialement,  
Michel

n°1946123
Laoo
Posté le 01-12-2009 à 05:15:42  profilanswer
 

Citation :

Bonjour,
 
Et désolé de vous déranger de nouveau  
 
J'étais entrain de remplir mon planning pour le mois de décembre afin de faire un essai  :pt1cable:  
 
Et je m'aperçois que la macro ne fonctionne pas si je me sert de ma liste  :??:  
Je m'explique dans la colonne R si je veux avoir que le boulot que j'ai à faire, je vais dans ma liste et je mets "vide" et là je n'ai que mon boulot "non fait".
Mais malheureusement si je fais "n", là ça ne me recopie rien  :heink:  
Si je ne sert pas de la liste ça fonctionne impec  :jap:  
 
Y a t'il une solution possible  :??:  
 
D'avance Merci
 
Depuis j'ai trouvé 2 sites pour commencer à apprendre: Cours algorithmehttp://www.pise.info/algo/codage.htm et cours VB http://www.pise.info/vb-net/00.htm
 
Cordialement,  
Michel


 
Bonjour à vous, ami Lamiche
 
Scrogneugneu!!!  Dois-je te rappeler la convention principale de cette macro:
 

Citation :


Si j'écris "N", je recopie, si j'écris "O", je recopie PAS, je sors de la macro. Right?  


 
Si j'écris "N", PAS si j'écris "n", petit bougre!!
             Vous me copierez cent fois "Je ne dois pas confondre les majuscules et les minuscules"
 
En fait, le texte exact est: " si j'écris quelque chose différent de "N", (je recopie PAS,) je sors de la macro
(If Target.Value <> "N" Then Exit Sub )
sinon, tu mets "<> "n", si cela t'est plus pratique, ou bien tu écris :
If Target.Value = "n" Then Target.Value ="N"  
puis le fameux:
If Target.Value <> "N" Then Exit Sub
comme ça, tu as les deux possibilités.
 
car je pense que ceci ne doit pas fonctionner:
If Target.Value <> "N" OR If Target.Value <> "n" Then Exit Sub
(ça marcherait avec des "=", mais je ne pense pas avec des "<>" )
 
En tous cas, ne change plus après du n/N, pour prendre l'habitude d'un fonctionnement sans avoir à te poser la question à chaque fois, et te paumer dans des possibilités différentes.
 
Voilà, je pense que, si tu as bien transcris l'affaire, ça doit fonctionner. Tiens-moi au courant.*
 
La macro, c'est une question de raisonnement et d'exactitude. La précision suisse, à côté, c'est de la gnognotte, sapristi!! :kaola:  
 
A part ça,ne t'inquiète pas, tu ne me déranges pas, c'est toujours un plaisir de réfléchir et de trouver une solution pour aider, même si j'ai l'air de râler, c'est pour rire.
Quoique! Fais gaffe quand même!  :lol:  
Garnement, va!!
C'est bien d'avoir trouver des sites pour apprendre. *Je vais partir toute la semaine :sol: , donc pas de réponse avant Lundi. A mon retour j'irais y faire un tour.
 
A+ :hello:  
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1946132
seniorpapo​u
Posté le 01-12-2009 à 07:40:04  profilanswer
 

Bonjour,
 

Citation :

If Target.Value <> "N" OR If Target.Value <> "n" Then Exit Sub  
(ça marcherait avec des "=", mais je ne pense pas avec des "<>" )


 
 
http://www.arcanapercipio.com/less [...] boole.html
la connaissance basique de l'algèbre booléenne est nécessaire à un bon informaticien.
 
IF A=x OU A=y then faire séquence
 
a pour contraire:
 
IF A<> x AND A<>y then ne pas faire la séquence
 
soit:
If Target.Value <> "N" AND  Target.Value <> "n" Then Exit Sub  
 
Ceci posé, la séquence :
 
If UCase( Target.Value) <> "N"  Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
 
devrait pouvoir faire l'affaire
 
précision:  
la ligne     Application.EnableEvents ....
 
permet de suspendre les évènements ou de les remettre, afin de ne pas boucler sur l'évènement "Change" lorsque l'on modifie target.value
 
Le UCase ne doit affecter target que si target.value = n ou N, sauf si la demande est de modifier toutes les saisies. Donc mettre la modification de target qu'après le test sur <> "N".
 
Cordialement
 


Message édité par seniorpapou le 01-12-2009 à 17:29:07
n°1946141
Laoo
Posté le 01-12-2009 à 08:48:13  profilanswer
 

Citation :

la connaissance basique de l'algèbre booléenne est nécessaire à un bon informaticien!!!


 
Ce que je ne suis pas, tant s'en faut, je le confesse humblement, mon bon père, et je me garderais bien d'y prétendre aucunement! Toutefois, je ne l'ignore pas tout à fait, et 3 pts d'exclamation sont peut-être, comment dire, un rien superfétatoires, voire vexants.
 
 A ma décharge, je dirai qu'à cette heure matinale, mon esprit encore embrumé n'a fait qu'apercevoir l'incompatibilité du système, sans en rechercher autrement l'évidente parade, que pourtant je connaissais, mais voilà... j'avais par ailleurs donné la solution plus haut, elle était seulement moins élégante, j'en conviens.
 Accorde-moi du moins que je ne suis pas tombé dans ce piège.
 
Néanmoins, je te remercie pour tes précisions, et le reste de ta démonstration, et pour l'adresse de ce site qui m'a l'air bien croustillant comme j'aime, à lire le préambule! Hélas, je n'ai pas le temps d'en lire d'avantage, mais je me réserve ce plaisir à mon retour, ainsi que celui de vous retrouver tous.
 Je file.
Cordialement.


---------------
Olympus OM-D  EM-5 + 14-42
n°1946366
seniorpapo​u
Posté le 01-12-2009 à 17:26:33  profilanswer
 

Bonsoir,
c'est vrai, fiston, j'ai la mauvaise habitude de répéter ma ponctuation (les points, les points d'interrogation et ceux d'exclamation). Afin de ne pas te heurter plus longtemps, je vais faire un EDIT de mon post afin de les retirer.
Bon courage, à Lundi prochain

n°1946378
lamiche37
Perdu dans la jungle PCHC
Posté le 01-12-2009 à 17:44:48  profilanswer
 

Bonjour,
 
J'ai bien corrigé dans la macro, la modification entre "n" et "N", tout fonctionne parfaitement bien  :love:  
 
Mais c'est si j'utilise les filtres  :(  
 
Par exemple mon tableau comprends les semaines 48,49,50 et 51; je filtre donc dans la colonne semaine ("Q" ) la semaine 48, pour n'avoir que mon planning de la semaine et donc les semaines 49,50 et 51 n'apparaisse pas. Mais lorsque je fais "n" sur une ligne de la semaine 48, elle n'apparait pas en dessous  :??: ; alors que si je développe mon filtre et que j'affiche toutes les semaines, elle est bien recopier  :heink:  
 
Merci seniorpapou pour le lien, c'est vrai que je me rappelle vaguement avoir entendu parler de ça au lycée (mais il y a tellement longtemps  :D )
 
Merci pour votre aide  :jap:  
 
Cordialement,
Michel

n°1946487
seniorpapo​u
Posté le 02-12-2009 à 07:58:10  profilanswer
 

Bonjour,
ton filtre est sur la semaine 48, la recopie ne met pas le numéro de semaine, puisqu'elle s'arrète à la colonne Q, la ligne ne peut donc pas faire partie du filtre.
pour résoudre ton b de façon simple, il te faut déplacer la colonne  où tu mets le N, à l'extrême droite (pas de politique ici!!!), puis changer les références aux colonnes dans la petite partie de code.
Cordialement
 

mood
Publicité
Posté le 02-12-2009 à 07:58:10  profilanswer
 

n°1946700
lamiche37
Perdu dans la jungle PCHC
Posté le 02-12-2009 à 16:45:58  profilanswer
 

Merci bien j'essaie ça  :jap:  
 
 :hello:
 
Edit:
 
J'ai déplacé la colonne "Q" (celle des semaines) pour la mettre en "N"; cette colonne n'est plus groupée, mais ça ne fonctionne toujours pas   :(  
 
Faudrait il que je mette ma colonne fini "o" "n", en dernière colonne  :??: , mais ça n'a pas l'air de fonctionner non plus  :(  
 
Mais c'est peu être un peu logique, quand je filtre je n'ai plus de ligne supplémentaire, donc je ne peux pas voir la recopie  :heink:

Message cité 1 fois
Message édité par lamiche37 le 02-12-2009 à 18:02:26
n°1947618
Laoo
Posté le 06-12-2009 à 01:35:35  profilanswer
 

lamiche37 a écrit :

-----------------()
 
J'ai déplacé la colonne "Q" (celle des semaines) pour la mettre en "N"; cette colonne n'est plus groupée, mais ça ne fonctionne toujours pas   :(  
 
Faudrait il que je mette ma colonne fini "o" "n", en dernière colonne  :??: , mais ça n'a pas l'air de fonctionner non plus  :(  
 
Mais c'est peu être un peu logique, quand je filtre je n'ai plus de ligne supplémentaire, donc je ne peux pas voir la recopie  :heink:


 
Eh bien bonjour :hello: , me revoilà après ces quelques jours sur la côte :sol: , vers Nice, pas très loin pt-être de mon ami Fred du 83, que je salue :hello: . Tout s'est bien passé, merci; j'ai eu beau temps, merci; (sauf Jeudi pourri!!!).
 
 Nous voilà en plein drame, dirait-on?  
 
Au lieu de déplacer les montagnes :ouch: , ne croirais-tu pas préférable de les contourner gentiment :ange: ???  
autrement dit, déplacer les colonnes :fou:  :fou:  :fou: , modifie tout ton plan, et quand tu auras des pages de programme, bonjour les rectifs!!!, en plus, si des contributeurs ont un plan précédent, ils n'y retrouveront plus rien (c'est mon cas) :pt1cable: , et risquent de se lasser  :??:  :sarcastic:  
(mais non, pas encore...)
Fais un lien sur ton classeur à l'état actuel, svp.
Il me semble d'ailleurs  que cela n'a rien à voir avec les colonnes, puisque tu dis que tes lignes sont bien copiées, c'est juste un pb de méthode de filtre pour les rendre visibles.  
 
Donc, réfléchis bien à ce que tu veux avoir, et écris les phases comme un programme mais en langage clair, tu auras plus de facilités pour remplir (ou obtenir) ensuite le codage.
 
 
 cherche tes solutions, puis demande de l'aide là où ça pêche
 
A demain    :sleep:  


---------------
Olympus OM-D  EM-5 + 14-42
n°1947629
seniorpapo​u
Posté le 06-12-2009 à 07:59:45  profilanswer
 

Bonjour Monsieur Laoo,
 
 

seniorpapou a écrit :

Bonjour,
ton filtre est sur la semaine 48, la recopie ne met pas le numéro de semaine, puisqu'elle s'arrète à la colonne Q, la ligne ne peut donc pas faire partie du filtre.
pour résoudre ton b de façon simple, il te faut déplacer la colonne  où tu mets le N, à l'extrême droite (pas de politique ici!!!), puis changer les références aux colonnes dans la petite partie de code.
Cordialement
 


 

Citation :

Nous voilà en plein drame, dirait-on?  
 
Au lieu de déplacer les montagnes :ouch: , ne croirais-tu pas préférable de les contourner gentiment :ange: ???  


Juste pour plaisanter, as-tu coincé ton doit sur le "?"
 
Je replace mon post parce que Laoo n'a pas bien lu.
 
 Il est évident que, si cela ne fonctionne pas, notre ami lamiche37 n'a pas modifié la ligne de recopie (ou mal) et donc n'a pas recopié la colonne contenant le numéro de semaine, cela n'est pas un drame!!!!.
lamiche37 n'est pas un expert comme Laoo, c'est pourquoi il a besoin de faire son expérience. Il ne connaît pas les conceptuels ni les organisationnels, ni, que sais-je encore, mais à force de tout refaire, il comprendra progressivement qu'une bonne analyse du sujet est nécessaire  
 
Si notre ami veut voir apparaître sa ligne recopiée alors que le filtre sur la semaine 48 est actif, il est nécessaire et suffisant de placer 48 dans la colonne semaine de la nouvelle ligne. Personnellement je trouve risqué le fait de mettre 48 dans la nouvelle ligne, mais, si le souhait de lamiche37 est de VOIR sa nouvelle ligne alors que le filtre est actif, c'est la seule solution SIMPLE.
 
Je suis tout à fait en phase sur la nécessité de stabiliser la structure afin de ne pas passer son temps à tout reprendre dans le code.
Toutefois, s'agissant ici, comme dans la plupart des cas d'ailleurs, de personnes non expérimentées (sinon elles ne posteraient pas), on peut admettre que la structure est instable et un bon"contributeur" doit s'adapter.
 
 
Il y a des méthodes pour faciliter la prise en compte de ces fluctuations en voici trois:
 
1) Nommer les colonnes spécifiques(et les cellules si elles ont une utilité spécifique dans le développement du code). Méthode peut simple pour un débutant.
 
2) Mettre, soit en constantes Public (dans un module) , soit en assignation de variables dans un sub, les valeurs de référence à la ( aux) colonne(s) concernée(s).
 
Par exemple : si je définis en constante public ColN le numéro de  colonne où l'on saisit le "N" par exemple 18, tu n'auras qu'à changer la valeur de cette constante,  
le  code ne faisant jamais référence à 18 mais toujours à ColN. Un bon choix du nom des constantes ou des colonnes nommées permettant de rendre le code plus "parlant".
 
3) l'utilisation de paramètres d'appels.
 
http://forum.hardware.fr/hfr/Progr [...] 2651_1.htm
par exemple
 
Cordialement


Message édité par seniorpapou le 06-12-2009 à 12:01:22
n°1947648
Laoo
Posté le 06-12-2009 à 11:13:16  profilanswer
 


 

Citation :

Juste pour plaisanter, as-tu coincé ton doit sur le "?"


 
Vouiiiiiiiiiiiiiiiiiiiiiiiiiii!!!!!!!!!!!!!!!!!!!   T'as remarqué, hein?  Pis sur le iiiiiiii, pis aussi sur le !!!!!!!!!!!! :pt1cable:  
 
Oh, le papé, salut!  Komen tu vas?
 

Citation :

Je replace mon post parce que Laoo n'a pas bien lu.    ça lui arrive, des fois...    re :pt1cable:    
 
 
 
Il est évident que, si cela ne fonctionne pas, notre ami lamiche37 n'a pas modifié la ligne de recopie (ou mal) et donc n'a pas recopié la colonne contenant le numéro de semaine, cela n'est pas un drame!!!!.                
Mais je crois qu'il en a besoin pour ses facturations.
 
lamiche37 n'est pas un expert comme Laoo, c'est pourquoi il a besoin de faire son expérience.  
 
Vil flatteur, va  :love:                                     ((((( :kaola: )))))
 
 
Il ne connaît pas les conceptuels ni les organisationnels, ni, que sais-je encore,    pis moi non pus!      
 
 mais à force de tout refaire, il comprendra progressivement qu'une bonne analyse du sujet est nécessaire       ça c'est vrai!   j'en ai refait des tableaux, pis des programmes, pis des embrouilles pas possibles que j'en trouvais plus l'bout, ni pus rien, d'ailleurs...!  Juste que je voulais le mettre en garde contre ce genre de pastagas  et l'aider un peu plus parce que c'est pour son boulot.  
 
 
Si notre ami veut voir apparaître sa ligne recopiée alors que le filtre sur la semaine 48 est actif, il est nécessaire et suffisant de placer 48 dans la colonne semaine de la nouvelle ligne. Personnellement je trouve risqué le fait de mettre 48 dans la nouvelle ligne, mais, si le souhait de lamiche37 est de VOIR sa nouvelle ligne alors que le filtre est actif, c'est la seule solution SIMPLE.  
     CQFD      voir + haut  
 
Je suis tout à fait en phase sur la nécessité de stabiliser la structure afin de ne pas passer son temps à tout reprendre dans le code.
Toutefois, s'agissant ici, comme dans la plupart des cas d'ailleurs, de personnes non expérimentées (sinon elles ne posteraient pas), on peut admettre que la structure est instable et un bon"contributeur" doit s'adapter.      
 
 Certes, mais c'était juste une mise en garde générale, tout le monde n'ayant pas notre infinie patience... :ange:
 
 
Il y a des méthodes pour faciliter la prise en compte de ces fluctuations en voici trois:
 
1) Nommer les colonnes spécifiques(et les cellules si elles ont une utilité spécifique dans le développement du code). Méthode peut simple pour un débutant.
 
2) Mettre, soit en constantes Public (dans un module) , soit en assignation de variables dans un sub, les valeurs de référence à la ( aux) colonne(s) concernée(s).
 
Par exemple : si je définis en constante public ColN le numéro de  colonne où l'on saisit le "N" par exemple 18, tu n'auras qu'à changer la valeur de cette constante,  
le  code ne faisant jamais référence à 18 mais toujours à ColN. Un bon choix du nom des constantes ou des colonnes nommées permettant de rendre le code plus "parlant".
 
3) l'utilisation de paramètres d'appels.        Quoi ça y a en être???
 


 
Cordialement à toi aussi  
 
 
 
 
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1948106
lamiche37
Perdu dans la jungle PCHC
Posté le 07-12-2009 à 18:00:28  profilanswer
 

Bonjour,
 
Non, mon fichier n'a pas bougé par rapport au deuxième lien de "Ci-joint".
 
J'ai juste essayer d'inverser les colonnes N et Q pour voir si cela changer quelques choses par rapport à ce que seniorpapou m'avait signalé  :jap:  
 
En fait je travaille à la maison avec office 2007 et 2010(en béta), et au boulot je suis en 2003  :pt1cable:  
 
Donc j'ai réessayé aujourd'hui au boulot, tout fonctionne parfaitement, sauf que la recopie de la ligne s'effectue en dehors de la liste (que j'ai créé sur tout mon tableau).
 
Je souhaiterais si possible que cette ligne recopiée s'intègre à ma liste  :jap:  
 
Et en ce qui concerne excel je m'aperçois que je ne connais pas toutes les étendues de ce programme  :(  
 
Je ne faisait que des formules de calculs, en général  :D  
 
Merci encore pour tout  :jap:  
 
 :hello:

n°1948209
Laoo
Posté le 08-12-2009 à 08:10:59  profilanswer
 

lamiche37 a écrit :

Bonjour,
 
Donc j'ai réessayé aujourd'hui au boulot, tout fonctionne parfaitement, sauf que la recopie de la ligne s'effectue en dehors de la liste (que j'ai créé sur tout mon tableau).
 
Je souhaiterais si possible que cette ligne recopiée s'intègre à ma liste  


 
 
Bonjour à toi
 
je ne comprends pas bien le "en-dehors"?  ça ne se recopie pas en-dessous? (as-tu remis les colonnes comme auparavant?)
 
Si tu peux expliquer bien clairement ci qui foire, où, et ce que tu voudrais, ça m'aiderait...et ça t'aiderait aussi sûrement à trouver en toi la solution, donc à progresser!           (comme en psychanalyse)
 
à bientôt


---------------
Olympus OM-D  EM-5 + 14-42
n°1948506
lamiche37
Perdu dans la jungle PCHC
Posté le 08-12-2009 à 17:48:25  profilanswer
 

Bonjour,
 
J'utilise le filtre "créer une liste", afin de pouvoir me repérer plus facilement (choisir les semaines, les machines,...etc). Et bien lorsque, la ligne se recopie, elle ne s'incorpore pas à la liste.
Et il possible pour contourner se problème que la recopie de la ligne s'effectue sur un nouvelle ligne insérer juste en dessous de l'autre ???
Cordialement,
Michel

Message cité 1 fois
Message édité par lamiche37 le 08-12-2009 à 17:49:00
n°1948582
Laoo
Posté le 09-12-2009 à 02:28:30  profilanswer
 

lamiche37 a écrit :

Bonjour,
 
J'utilise le filtre "créer une liste", afin de pouvoir me repérer plus facilement (choisir les semaines, les machines,...etc). Et bien lorsque, la ligne se recopie, elle ne s'incorpore pas à la liste.
Et il possible pour contourner se problème que la recopie de la ligne s'effectue sur un nouvelle ligne insérer juste en dessous de l'autre ???
Cordialement,
Michel


 
Hello
 
Ques aeco, le filtre "créer une liste"?   Enfin, c pas grave, je pense.
 
Pour la suite, eh bien oui, il est possible d'incorporer cette nouvelle ligne, de la rendre visible, et même de la mettre juste en-dessous de l'autre, voici comment:
 

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     ' au 9/12/2009
  3. If Target.Column <> 18 Then Exit Sub
  4. '  "UCase" donne la valeur majuscule de la lettre tapée :
  5. If UCase(Target.Value) <> "N" Then Exit Sub
  6. 'rend les colonnes groupées visibles (pour pouvoir en copier les valeurs, sinon niet) :
  7. Columns("b:j" ).Hidden = False
  8. Application.EnableEvents = False
  9. 'n devient N:
  10. Target.Value = UCase(Target.Value)
  11. RowSel = Target.Row
  12. Target.Offset(1, 0).EntireRow.Insert
  13. Range(Cells(RowSel + 1, 1), Cells(RowSel + 1, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value
  14. 'si tu veux aussi copier la cellule en colonne  R   (sinon supprime ou mets 1 apostrophe)
  15. Cells(RowSel + 1, 19).Value = Cells(RowSel, 19).Value
  16. Application.EnableEvents = True
  17. 'cache de nouveau les colonnes groupées :
  18. Columns("b:j" ).Hidden = True
  19. End Sub


 
Etes-vous satisfait, mon ami?


---------------
Olympus OM-D  EM-5 + 14-42
n°1948583
Laoo
Posté le 09-12-2009 à 02:34:21  profilanswer
 

T'as vu, Papou, j'ai repris ta super démo avec Ucase & Enable?

n°1948587
seniorpapo​u
Posté le 09-12-2009 à 07:08:04  profilanswer
 

Bonjour,
ta solution fonctionne très bien
tu vois, le travail en équipe a du bon
Bonne journée

n°1948622
Laoo
Posté le 09-12-2009 à 10:03:23  profilanswer
 

Michel, Bonjour
 
rajoute dès que possible les 3 lignes en bleu
 

seniorpapou a écrit :

Bonjour,
ta solution fonctionne très bien
tu vois, le travail en équipe a du bon
Bonne journée


 
 
J'en suis bien d'accord. Et justement, comme "ce monsieur" me le fait très judicieusement, et très délicatement remarquer en privé, il convient d'utiliser des actions très fortes comme "Application.EnableEvents = False" ou "Application.ScreenUpdating = False", avec la plus grande prudence, car en cas d'erreur ds la macro, Bonjour les pb! Pour les éviter il m'a fourni cette précaution INDISPENSABLE:
 
1) Avant toutes choses, le:    On Error GoTo  qui en cas d'erreur renvoie à la balise indiquée, pour libérer la propriété de l'Application arrêtée par "=False"
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error GoTo supp_bloc  

 
'2) puis après différentes actions, la destination et la remise en fonction, ici en fin de macro :
 
supp_bloc:  
         Application.EnableEvents = True

End Sub
 
En cas d'arrêt impromptu de la macro, inopiné ou volontaire, il convient de ré-exécuter ces actions immédiatement pour les remettre en fonction.
 
Cordialement


---------------
Olympus OM-D  EM-5 + 14-42
n°1948677
lamiche37
Perdu dans la jungle PCHC
Posté le 09-12-2009 à 12:01:15  profilanswer
 

Bonjour,
 
et merci de continuer de vous pencher sur mon problème  :jap:  

Citation :


Ques aeco, le filtre "créer une liste"?


 
 j'ai toujours appelé ça comme çà  :( , dans "données", "filtrer" ou "liste", "créer une liste". je m'en sert tous les jours  :heink:  
 
 
 

Citation :

  Private Sub Worksheet_Change(ByVal Target As Range)
        ' au 9/12/2009
    On Error GoTo supp_bloc  
    If Target.Column <> 18 Then Exit Sub
    '  "UCase" donne la valeur majuscule de la lettre tapée :
    If UCase(Target.Value) <> "N" Then Exit Sub  Ce qui voudrait dire que je peux taper indifféremment "N" ou "n"
   

   'rend les colonnes groupées visibles (pour pouvoir en copier les valeurs, sinon niet) :
    Columns("b:j" ).Hidden = False
   
   Application.EnableEvents = False
   'n devient N:
   Target.Value = UCase(Target.Value)
   RowSel = Target.Row
   Target.Offset(1, 0).EntireRow.Insert
   Range(Cells(RowSel + 1, 1), Cells(RowSel + 1, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value
   
  'si tu veux aussi copier la cellule en colonne  R   (sinon supprime ou mets 1 apostrophe)
   Cells(RowSel + 1, 19).Value = Cells(RowSel, 19).Value   Pourquoi recopier cette cellule, je ne vois pas  :??:  
 

   Application.EnableEvents = True
 
   'cache de nouveau les colonnes groupées :
   Columns("b:j" ).Hidden = True
 
  supp_bloc:  
         Application.EnableEvents = True  Pourquoi 2 fois cette action
 
   End Sub


 
Je désespère de pouvoir un jour créer une macro comme celle ci  :(  
 
J'essaie tout ça  :jap:  
 
Cordialement,
Michel

n°1948695
Laoo
Posté le 09-12-2009 à 12:44:13  profilanswer
 

lamiche37 a écrit :

Bonjour,
 
et merci de continuer de vous pencher sur mon problème  :jap:    c'est un plaisir

Citation :


 
 j'ai toujours appelé ça comme çà  :( , dans "données", "filtrer" ou "liste", "créer une liste". je m'en sert tous les jours  :heink:  
 
Pardon, c'est que tu as sans doute une version + moderne que moi, j'ai seulement "filtre" ou "filtre élaboré", donc je ne connaissais pas, c'est moi qui m'exkiuse.

 
 
 
    '  "UCase" donne la valeur majuscule de la lettre tapée :
    If UCase(Target.Value) <> "N" Then Exit Sub  Ce qui voudrait dire que je peux taper indifféremment "N" ou "n"
   
   VOUI !
 
   'rend les colonnes groupées visibles (pour pouvoir en copier les valeurs, sinon niet) :
    Columns("b:j" ).Hidden = False
   
   Application.EnableEvents = False
   'n devient N:
   Target.Value = UCase(Target.Value)
   RowSel = Target.Row
   Target.Offset(1, 0).EntireRow.Insert
   Range(Cells(RowSel + 1, 1), Cells(RowSel + 1, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value
   
  'si tu veux aussi copier la cellule en colonne  R   (sinon supprime ou mets 1 apostrophe)
   Cells(RowSel + 1, 19).Value = Cells(RowSel, 19).Value   Pourquoi recopier cette cellule, je ne vois pas  :??:  
 

               It's up to you!  Je croyais que tu voulais, et que ça te ferait plaisir, mais si tu n'en veux pas..............tu l'enlèves.
 
  ' Application.EnableEvents = True      à supprimer car reporté plus bas
 
   'cache de nouveau les colonnes groupées :
   Columns("b:j" ).Hidden = True
 
  supp_bloc:  
         Application.EnableEvents = True  Pourquoi 2 fois cette action
 
'yé m'excouse encore! j'ai reporté ici, sans supprimer l'autre plus haut! :pt1cable:  
 
   End Sub


 
Je désespère de pouvoir un jour créer une macro comme celle ci  :(      
 
' C'est un métier, Monsieur!'    :lol:             Mais ça s'apprend.  
 
 Je suis allé sur les sites que tu avais indiqués: j'adore! très intelligents et intéressants, avec plein d'humour, en plus,je crois que je vais progresser aussi.   Je te remercie de ces informations. Tu vois, chacun apporte quelque chose d'utile.
 
 
Cordialement



---------------
Olympus OM-D  EM-5 + 14-42
n°1948699
Laoo
Posté le 09-12-2009 à 12:58:55  profilanswer
 


 
   ' Application.EnableEvents = True      à supprimer car reporté plus bas  
   
   'cache de nouveau les colonnes groupées :  
   Columns("b:j" ).Hidden = True  
 
  supp_bloc:    
         Application.EnableEvents = True        '              Pourquoi 2 fois cette action  
   
'yé m'excouse encore! j'ai reporté ici, sans supprimer l'autre plus haut! :pt1cable:  
Mais non, en fait, c'est TOI qui n'a pas retiré l'autre, garnement!   je retire mes excuses!     :lol:  
 
C'est pas grave, c'est bien de l'avoir vu. D'ailleurs, en l'occurence, ça n'avait pas d'importance.  
 
Bye
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1949159
lamiche37
Perdu dans la jungle PCHC
Posté le 10-12-2009 à 18:00:09  profilanswer
 

Bonjour,
 
Et merci, ça fonctionne parfaitement  :jap:  à part le groupement des colonnes  :(  
 
J'ai en fait deux regroupements de "B" à "E" et de "F" à "J" de telle manière à laisser à l'écran mes colonnes "E" et "J".
Donc puis je écrire:

Citation :

Columns("B:E", "F:J" ).Hidden = False  


 
et de même pour les cacher:

Citation :

Columns("B:E", "F:J" ).Hidden = True  


 
 :??:  
 
Merci
 
 :hello:

n°1949204
Laoo
Posté le 10-12-2009 à 19:37:18  profilanswer
 


 
Bonsoir      :hello:  
 
 
Ben, comme ça, ça ne sert de toute façon à rien... Même si ça marchait, E et J seraient forcément cachées!
 
Mais tu es un grand garçon, maintenant, et surtout, tu as tous les éléments pour trouver facilement. En 2 minutes, 12 de réflexion tu vas trouver ça, je suis sûr, et tu seras ravi d'avoir trouvé toi-même.
 
A tout de suite    :p        
 


---------------
Olympus OM-D  EM-5 + 14-42
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Conditions en fonction de l'heure en PHPMacro excel pour colorer les cellules vides
[SQL] Compter et additionner des occurences sous conditionsMacro Excel pour ajouter en caractère dans les cellules.
[VBS] Sélectionner un fichier au hasard et le copier (SVP)réference à des cellules script lotus123
Copier le Paragraphe donc le si son tableau contien OK dans un fichier[VBS] script pour copier un fichier de serveur vers un client
Copier un paragraphe sur une autre page Word si le tableau contien TOTAccess Comment copier des valeurs d'une table vers une autre
Plus de sujets relatifs à : Copier des cellules sous conditions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR