|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonsoir,
je cherche à copier une plage de cellules contenant des MFC et à coller leur contenu sur une autre plage. Le problème : la MFC est également collée, mais le résultat n'est pas celui escompté car j'ai des références relatives dans mes MFC (et je ne peux pas utiliser que des références absolues). Ma question : comment coller le contenu d'une cellule avec le résultat de la MFC (mais pas la MFC) . Par exemple, une plage de cellules d'un planning où se cottoient des cellules colorée en bleu pâle (JF, week-end...) grâce à une MFC et des cellules contenant des informations (texte, couleur de fond et de polices...). NB : le but est d'élaborer un planning annuel pour une personne (pouvant tenir sur une ou deux pages) à partir du planning d'une équipe (une colonne de 365 lignes) avec des WE parfois travaillés (donc parfois des cellules colorées pour marquer la garde) mais en conservant la couleur bleuté des WE et JF de la MFC quand ces jours ne sont pas attribués. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 63 ![]() |
Bonjour dark,
Peux tu essayer ceci : ÉDIT : Cela correspond au collage special d'excel, valeurs uniquement. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Ca c'est pour copier les valeurs, pour le format sans garder la MFC je ne vois pas de solution simple à part boucler sur toutes les cellules et copier la couleur de fond, la couleur de police...
Je vais voir si je trouve mieux
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Guillaume ChaudemancheBack Office Marchés Inscription : mars 2011 Messages : 39 ![]() |
Bonjour à tous,
pressdell a la bonne solution mais le bon paramètre est le suivant : Code :
.PasteSpecial (xlPasteValuesAndNumberFormats) Guillaume |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu as testé ? J'avais essayé ça sans grande conviction et ça ne marchait pas chez moi.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#6 | |||
|
Membre régulier
![]() Guillaume ChaudemancheBack Office Marchés Inscription : mars 2011 Messages : 39 ![]() |
Citation:
Code :
Cordialement, Guillaume |
|||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
C'est bizarre, ça ne marche pas chez moi en faisant exactement la même chose. On est d'accord, tu n'as plus de MFC en A2, mais un fond vert quand même.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Guillaume ChaudemancheBack Office Marchés Inscription : mars 2011 Messages : 39 ![]() |
Euh non je n'ai ni fond vert ni MFC...
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
On est d'accord ! Que David me corrige si je me trompe mais il voulait coller les valeur et le format résultat de la MFC. Le but dans ton exemple serait donc de ne plus avoir de MFC, mais un fond vert "en dur".
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
10
|
|
|
#10 |
|
Membre régulier
![]() Guillaume ChaudemancheBack Office Marchés Inscription : mars 2011 Messages : 39 ![]() |
Ca change tout ! |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Le code suivant devrait marcher, il est censé gérer tous les cas de MFC.
Par contre, je ne copie que la couleur de la cellule et de la police, il faut compléter là où j'ai écris "Et toutes les autres propriétés". Code :
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||
|
|
10
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonsoir,
merci pour toutes ces réponses. Effectivement, je cherche à conserver uniquement le résultat de la MFC (en l'occurence une couleur de cellule), dons surtout pas la MFC elle-même (puisqu'elle donnerait un résultat erroné). La solution Code :
.PasteSpecial (xlPasteValuesAndNumberFormats |
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonjour,
j'ai essayé la macro : ça fonctionne mais uniquement si on cherche à copier une cellule vide. Je m'explique : - si je fais une mfc "valeur 0 de la cellule donne couleur rouge", alors ça fonctionne : j'obtiens une cellule colorée en rouge exactement où je le souhaite, - si je fais "valeur 3 donne couleur rouge", alors, quand j'utilise la macro, le 3 disparait de la cellule source (qui perd alors sa couleur rouge) et je n'obtiens rien dans la cellule cible (tout se passe comme si on fesait un couperpcoller). J'ai a peu près intégré les 2 1ères macro (test et copie sans mfc), mais je décroche sur les suivantes. NB : dans la macro test, la première plage est celle des cellules à copier, la deuxième est uniquement la première cellule de la zone cible (sinon, on obtient autant d ecopies que de cellules dans la zone cible indiquée). Autre question : quand on copie une cellule colorée par mfc avec cette macro, on ne peut plus effacer son contenu (comme il n'y a pas de mfc dans la cellule cible, on ne peut pas la réinitialiser) : existe-t-il une solution pour effacer son contenu autrement qu'en supprimant la cellule? |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
C'est bizarre ça marche chez moi, tu aurais un exemple de valeur et de MFC ?
Je n'ai pas bien compris ta dernière question, pour effacer seulement le contenu d'une cellule, tu as ClearContents, et pour le format, tu as ClearFormat. C'est ça que tu voulais ?
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
10
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonjour Zèbreloup,
c'était bien le sens de ma question et ta réponse fonctionne : en fait, on ne peut pas effacer le résultat de la macro qui copie et colle le résultat d'une mfc autrement que par une macro( fonctionne bien). Pour le reste, voici en pièce jointe le fichier qui me sert à évaluer la macro : on constate quelques anomalies en la faisant fonctionner. |
|
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Il n'y est pas par défaut, mais il existe un bouton "Effacer la mise en forme" que tu peux ajouter dans Excel.
Je regarde ton fichier. En fait la macro marche très bien si tu n'ajoutes pas Code :
Relis peut-être des tutos sur l'utilisation des procédures et fonctions avec paramètres. A moins que ce soit le comportement voulu (et dans ce cas il faut s'assurer d'un passage par référence), on ne modifie pas les paramètres d'une procédure. De plus dans ce cas, Range était un object, il aurait fallu mettre un Set devant. Quand tu ne mets pas le Set, il prend le range comme un tableau de valeurs, et il lui attribut Range("zone1"), mais comme il attend une valeur, il prend seulement la valeur de la première cellule et c'est pour ça qu'il remet tout à vide. Si tu mets "toto" en A1, tu comprendras ce qui se passe. EDIT : Non, ça ne marche pas avec "toto", mais enlève les 2 lignes en trop et ce sera bon.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||
|
|
00
|
|
|
#17 | ||
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonsoir,
j'avais fais un amalgame entre les macro test et copie sans mfc, du coup, la boulette (ceci dit, il y a pas mal de choses que je ne maitrise absolument pas en vba quand bien même je potasse régulièrement le sujet, du fait que je ne savais même pas que ça existait il y a encore quelques semaines : du coup, je n'avais pas trop saisi pourqoui on passait par une macro test pour lancer la macro copieSansMFC). Merci encore Le problème du copier-coller des résultats d'une mfc est résolu, mais j'ai encore une question sur ce sujet : comment modifier la macro copieSansMFC pour qu'elle copie le résultat de la mfc quand il y en a un, mais aussi : - la couleur de fond (la couleur de police...) quand il n'y a pas de mfc - la couleur donnée à la cellule "par dessus" la couleur de mfc ? J'ai essayé avec Code :
|
||
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Ne le mets pas dans un Else, mais plutôt juste après le
Et utilises plutôt Color que ColorIndex, au cas où la couleur choisie ne soit pas une couleur de la palette. Comme ça tu auras par défaut la couleur de fond "normale" et la couleur "MFC" si celle-ci est vérifiée. Je n'ai pas compris ton deuxième tiret par contre.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
10
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Merci Zebreloup,
ça fonctionne parfaitement et répond aux 2 points (j'ai gardé colorindex puisque je colorie mon planning en passant par colorindex). Pour le 2ème tiret, j'entendais que lorsqu'on applique une mfc (par exemple couleur bleu pale si la cellule est un dimanche dans un planning) et bien on a une couleur (bleu pale en l'occurence) qu'on ne peut pas modifier avec la palette de couleur excel , mais on peut par contre appliquer par-dessus une couleur (disons bleu foncé par ex. pour marquer un jour de garde dans un planning) par l'intermédiaire d'une macro (via une barre de coloriage dans mon cas) tout en gardant la possibilité de faire réapparaître la couleur bleu pale de la mfc si je change mon planning et décide d'effacer la garde pour la déplace sur un autre dimanche (toujours via ma barre de coloriage) : j'ai donc bien une couleur de fond (celle de la mfc) par-dessus laquelle j'applique une autre couleur (ce qui masque la couleur de la mfc), et je retrouve bien la couleur initiale quand je fais disparaitre la couleur "décorative", comme si j'avais peins par-dessus (sans perdre l'info initiale). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com