Transformation des cellules dans Excel

Fermé
MarcAntoineCharette - 26 mai 2010 à 20:21
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 mai 2010 à 08:30
Bonjour,

Pour un travail, j'aurais besoin de faire une transformation à plusieurs dizaines de cellules et cela m'aiderait beaucoup si il y avait une manière automatisée pour régler le problème. Malheureusement, c'est plutôt complexe:

J'aimerais que chaque cellule COLORÉE (uniquement) affiche maintenant un texte.

Par exemple, si le nom Jean PERRON se trouve dans une cellule colorée en jaune, j'aimerais qu'il se transforme en Jean PERRON, avocat.

Je comprends que tout ça ne serait pas nécessaire si les données avaient été mieux organisées, mais ce n'est pas moi qui ait fait cette partie du travail.

Je vous remercie d'avance!

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
Modifié par pijaku le 27/05/2010 à 08:32
Bonjour,
Salut Raymond,
Comment vont nos chères Antilles?
Bien que pas spécialiste VBA, je peux reprendre le dossier.

Marc Antoine,
Sans plus de précisions, nous ne pouvons pas grand chose...
Je vais te donner un code VBA à insérer dans un module (pour cela, dans la feuille excel concernée, taper ALT+F11, dans la fenêtre visual basic ainsi ouverte faire : Insertion/Modules et copier / coller le code suivant, le modifier comme indiqué ci après puis fermer cette fenêtre visual basic pour retourner sous excel).
Il te faudra effectivement modifier ce code pour l'adapter à ta situation.

code :
Sub EcrireSelonCouleur()  
Dim dercol, derlign As Integer  
Dim Cel As Range  

derlign = Range("A1").SpecialCells(xlCellTypeLastCell).Row  
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column  

     For Each Cel In Range(Cells(1, 1), Cells(derlign, dercol))  
          Select Case Cel.Interior.ColorIndex  
              Case 5  
                  Cel.Value = Cel.Value & ", avocat"  
              Case 10  
                  Cel.Value = Cel.Value & ", professeur"  
              Case 12  
                  Cel.Value = Cel.Value & ", médecin"  
              Case 48  
                  Cel.Value = Cel.Value & ", kyné"  
          End Select  
     Next Cel  
End Sub


Modifications à apporter :
- en gras dans le code, les codes couleurs VBA. ci joint le classeur de correspondance des couleurs. Change les chiffres selon les couleurs contenues dans tes cellules. Tu peux bien entendu ajouter des case (toujours les placer entre Select Case et End Select)
- en souligné, ce que tu veux ajouter aux cellules colorées.
- ce code fonctionne sur toutes les cellules de la feuille active. Il est bien entendu possible de modifier cela.

Fonctionnement :
Une fois tout le code modifié, aller sur la feuille concernée, taper ALT+F8, choisir "EcrireSelonCouleur" et exécuter.
Si toutefois vous êtes novice en macro, et même dans le cas contraire, je vous recommande fortement de faire un essai avec une copie de votre classeur original...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
1
Raymond PENTIER Messages postés 58720 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 10 novembre 2024 17 233
27 mai 2010 à 05:27
C'est facile, si la coloration des cellules a été, elle aussi, automatisée grâce à la Mise en Forme Conditionnelle.

Sinon, il te faudra l'aide d'un spécialiste en VBA ...
0
MarcAntoineCharette
27 mai 2010 à 05:41
Merci de votre réponse!

Malheureusement la mise en forme conditionnelle n'a pas été utilisée pour la coloration des cellules.

Par contre j'ai des bases en XML. Si la coloration des cellules est indiquée dans le XML généré par Excel, je pourrais peut-être arriver à quelque chose.

Encore merci!
0