Pourquoi copier un format automatiquement est-il si compliqué ?
Bonsoir,
Jusqu'à présent j'ai pu botter en touche, mais ce coup-ci j'ai besoin de pouvoir copier automatiquement le format (sa couleur uniquement) d'une cellule dans une cellule destinataire si celle-ci n'est pas vide.
J'avoue n'avoir à peu près rien compris. J'ai trouvé une macro qui faisait l'inverse entre les cellules, mais je n'ai pas réussi à modifier le code.
J'imagine que le sujet a déjà été traité, mais il y a 700 pages à fouiller
Dans l'exemple joint j'ai des colonnes issues de collages spéciaux dont je ne peux me débarrasser mais c'est franchement un moindre mal. Par contre la seconde feuille, destinée à la compta, doit être allégée (d'où sa forme actuelle). Comment automatiser la récupération des couleurs des colonnes G ou H de la première feuille pour les mettre dans la colonne G de la seconde feuille ?
Merci d'avance, ne serait-ce que d'avoir lu !
Bonjour,
Les couleurs se mettent à jour à l'activation de la feuille :
Private Sub Worksheet_Activate()
Dim c As Range
For Each c In [G4:G93]
If c.Value > 0 Then c.Interior.Color = Sheets(ActiveSheet.Index - 1).Range(c.Address).Interior.Color
Next c
End SubJe prend les couleurs sur la feuille immédiatement avant, sans la désigner explicitement.
Mettre le même code si d'autres feuilles sont concernées, ça fonctionnera directement.
Par contre si les feuilles peuvent être amenées à ne plus être dans l'ordre, il faudra utiliser le nom de la feuille.
Tu as des cellules avec valeur qui n''ont pas de couleur sur l'autre feuille...
eric
eriiic, tu es mon héros !
C'est parfait, je te remercie beaucoup.
Je vais l'appliquer tout de suite et essayer de le comprendre après, c'est idiot mais ça va faire un bien fou !
Merci encore,
Boris
Groumpf...
Je ne réussis pas à l'appliquer sur plusieurs colonnes.
Il me semblait pourtant avoir compris le code, avoir choisi les bonnes colonnes, mais rien à faire...
Par contre ça passe très bien de feuille à feuille ou de classeur à classeur, pas de problème (et je retiens, quand c'est possible, de ne pas faire référence à des noms de feuille).
Eriiic ?
bonjour
salut au passage eriiic
une MF qui évolue avec les données doit se faire par MFC, et non au clavier/souris
on évite ainsi tout un tas de problèmes. La MFC s'applique au clavier/souris au départ, puis on la laisse faire.
de même, on ne "recopie" jamais de données
le plus souvent, il suffit de simples "=" pour faire apparaître une donnée qui figure en dur dans une autre zone d'Excel. Mais il y a d''autres méthodes.
amitiés à tous
Bonjour à tous,
Tiens, il me semblait avoir répondu, j'ai dû oublier de valider.
Certes jmd. Seulement il reste le pb de faire référence à la feuille précédente, infaisable par formule pour une MFC.
Ceci dit, en y regardant de plus près, c'est vrai que les feuilles sont identiques à qq colonnes près, qu'il suffit de masquer/afficher avec un plan. En ayant mis la couleur sur une colonne supplémentaire.
Boris, il suffit de cliquer sur le 1 ou le 2 en haut à gauche pour choisir l'affichage, les feuilles Compta deviennent inutiles.
J'ai quand même modifié la macro si tu persistes dans cette voie.
eric
re Eriiic
certes, mais le principe que j'exige chez mes clients, c'est qu'une mise en couleur au clavier/souris ne doit JAMAIS être une donnée.
donc par ex si on veut mettre en évidence une date, ou une anomalie, on crée une cellule proche dans laquelle on va saisir la donnée (par ex "ALERTE") et mettre une MFC rouge si cellule non vide.
une donnée est une suite de signes, jamais une couleur.
mais ce n'est que mon exigence perso de moi
amitiés
On est d'accord que c'est largement préférable
Bonjour Messieurs,
merci de vous être penchés dessus, c'est bienvenu et agréable !
eriiic, merci pour le plan. Je ne connaissais pas et c'est sacrément bien, effectivement. D'ailleurs quand j'ai montré ça à la comptable, elle était partagée entre le soulagement et l'enthousiasme
Malheureusement, pour des questions de droit d'accès il faudra même que j'envisage de faire ça d'un classeur à un autre.
Quelques questions:
- J'ai essayé d'adapter le code à la page (si les colonnes d'heures ont telle couleur, que le total prenne cette couleur) et ça n'a pas marché (j'ai simplement, dans un premier temps, supprimé le -1 afin d'être sur la page active, puis supprimé la référence à la page. Échec). Il faut reconnaitre qu'il est difficile, dans les lexiques, de trouver des informations concernant un point précis. C'est toujours, forcément, une entrée dans un ensemble. Je finirai par trouver le temps de faire les initiations et perfectionnements. J'espère.
- J'imagine que pour effectuer la même chose depuis un autre classeur j'indique le chemin complet ?
- Curieusement la procédure n'est pas rétroactive. Si je supprime des heures la cellule ne perd pas son remplissage. J'ai raté un truc ? En tout cas la MFC ne reprend pas la main...
Il me semblait avoir une question supplémentaire, elle me reviendra plus tard si elle est encore nécessaire.
Merci, comme d'habitude...
Bonjour,
- Curieusement la procédure n'est pas rétroactive. Si je supprime des heures la cellule ne perd pas son remplissage. J'ai raté un truc ? En tout cas la MFC ne reprend pas la main...
Il fallait préciser que tu voulais ça. Difficile de penser à tout ce que tu n'as pas dit.
Complément :
Private Sub Worksheet_Activate()
Dim c As Range, lig As Long, col As Long, col2 As Long
For col = 7 To Cells(3, Columns.Count).End(xlToLeft).Column Step 3
col2 = (col - 7) * 2 + 7
For lig = 4 To Cells(Rows.Count, 1).End(xlUp).Row + 2
Set c = Cells(lig, col)
If c.Value > 0 Then
c.Interior.Color = Sheets(ActiveSheet.Index - 1).Cells(lig, col2).Interior.Color
Else
c.Interior.ColorIndex = xlNone
End If
Next lig
Next col
End SubMais si les plans donnent satisfaction pourquoi compliquer en continuant dans cette voie ?
Pour le reste c'est beaucoup trop brouillon et fouillis pour donner envie.
Termine de réfléchir à ton besoin et reviens quand tu auras un cahier des charges clair, précis et détaillé (feuilles, cellules, plages concernées, avec quoi, comment, etc)
eric.
Merci eriiic,
Je reconnais qu'il y a un galimatias de choses rajoutées. on part sur une idée et on en rajoute, sauf qu'il aurait fallu faire autrement tout de suite, et ainsi de suite.
J'en suis encore à chercher des méthodes qui me permettront de faire un "propre" pour la saison prochaine.
Merci de la patience, des conseils et des réponses, vous m'aurez bien fait avancer.
Cordialement,
Boris