Liste colonne A et B en couleur

vieuxray -  
 vieuxray -
Bonjour a toutes et tous, Forum bonjour


Config Excel 2007 VBA

Je cherche a faire un petit code qui me permettrai d'afficher une liste en couleur.

Dans ma colonne A, en A1 une liste triée, je souhaiterai svp mettre en couleur (le fond) de la cellule de la façon suivante:
une couleur sur deux (Bleu et Vert) et écrit en noir.

la liste commence par des chiffres puis dans l'ordre A puis B etc etc
les chiffres en Bleu puis les (A) en Vert puis les (C) Bleu puis les (D) Vert etc etc

12 Rounds
40 Jours pour vivre
A l'aube du troisième jour
Atomic
Bernard et bianca
Bataille de boules de neige

Dans ma colonne B, en B1 une autre liste triée, je souhaiterai svp (cette fois) mettre en couleur MAIS une ligne sur deux Bleu - Vert etc etc

Je vous souhaite une bonne journée et merci pour votre aide.

Cordialement Ray

20 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    code a mettre dans VBA de la feuille et a adapter:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim derlig1, derlig2, x, Color(1), MemColor1, MemColor2, MemPCG

    'couleurs a adapter
    Color(0) = vbCyan
    Color(1) = vbGreen

    derlig1 = Range("A" & Rows.Count).End(xlUp).Row
    derlig2 = Range("B" & Rows.Count).End(xlUp).Row
    For x = 1 To derlig1
    'couleurs liste colonne A
    'Premier Caractere a Gauche
    PCG = Left(Range("A" & x), 1)
    'teste chiffre
    If PCG >= "0" And PCG <= 9 Then
    Range("A" & x).Interior.Color = Color(0)
    MemColor1 = 0
    Else
    'test memoire PCG = PCG et ensuite test memoire couleur
    'pour changement couleur
    If PCG <> MemPCG Then
    MemPCG = PCG
    If MemColor1 = 0 Then
    MemColor1 = 1
    Else
    MemColor1 = 0
    End If
    Range("A" & x).Interior.Color = Color(MemColor1)
    Else
    Range("A" & x).Interior.Color = Color(MemColor1)
    End If
    End If

    'Couleur liste colonne B
    If x <= derlig2 Then
    Range("B" & x).Interior.Color = Color(x Mod 2)
    End If

    Next x
    End Sub
    1
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonsoir,

    Voir avec la propriété Enabled du contrôle. Le mettre à False par défaut puis une fois la sélection effectuée mettre Enabled à True.

    ;0)
    1
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour Polux31 et bonne annee
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Bonjour f94009,

      Merci et idem ;0)
      0
    3. vieuxray
       
      salut polux31

      je te souhaite un excellent réveillon a toi et tes proches

      a l'année prochaine sans nul doute

      Bien cordialement Raymond
      0
  3. vieuxray
     
    Bonsoir f894009

    Merci pour ta réponse et pour le code c'est gentil
    désolé pour le retard journée bien chargée

    j'ai essayer le code et j'ai la colonne A qui se mets tout en noir
    je n'arrive pas a m'en dépatouiller, ca reste toujours noir

    j'ai fait quelques modifs pensant trouver mais hélas non.

    merci bonne soirée

    Cordialement Ray
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. vieuxray
     
    Salut f894009

    J'ai refait des essais et j'ai toujours la colonne (A) en noir ainsi que la cellule (B1)

    et je n'arrive pas a modifier pour faire fonctionner

    je retourne essayer voir ce qui ne va pas

    Merci et bonne après midi

    Cordialement Raym
    0
  6. vieuxray
     
    Bonjour f894009,

    C'est avec un peu de mal que j'ai enfin réussi a faire fonctionner le code que tu fait
    je t'en remercie maintenant ça fonctionne bien

    Par contre avec le code ci-dessous qui me permet de choisir un répertoire, ca fonctionne mais si je me trompe en cliquant sur (Annuler) ou autre fausse manipulation, cela engendre un message d'erreur.

    Pourrai tu svp me faire un test qui ferai en sorte de reposer la question si je me trompe, que je sois obliger d'effectuer un choix de D-D.

    Encore merci pour le petit code je te souhaite un agréable Dimanche

    Bien cordialement Ray


    Function ChoisirDossier()
    Dim objShell, objFolder, SecuriteSlash As Byte

    With UserForm1
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un répertoire", &H1&)
    Volume = Left(objFolder.ParentFolder, Len(objFolder.ParentFolder) - 4) & " "

    If objFolder Is Nothing Then GoTo EndProc
    If Left(objFolder.self.Path, 2) = ":" Then GoTo EndProc

    ChoisirDossier = objFolder.self.Path
    SecuriteSlash = InStr(objFolder.Title, ":")
    Chemin = objFolder.self.Path

    If SecuriteSlash > 0 Then ChoisirDossier = Left(ChoisirDossier, Len(ChoisirDossier) - 1)
    EndProc:
    Set objFolder = Nothing
    Set objShell = Nothing
    .Label2.Caption = "Disque dur: " & Volume 'Disque dur
    .Label3.Caption = "Répertoire: " & Chemin 'Chemin répertoire
    End With
    End Function
    0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    bonjour,

    Function ChoisirDossier()
    Dim objShell, objFolder, SecuriteSlash As Byte

    With UserForm1
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un répertoire", &H1&)

    If objFolder Is Nothing Then GoTo EndProc
    If Left(objFolder.self.Path, 2) = ":" Then GoTo EndProc

    Volume = Left(objFolder.ParentFolder, Len(objFolder.ParentFolder) - 4) & " "

    ChoisirDossier = objFolder.self.Path
    SecuriteSlash = InStr(objFolder.Title, ":")
    Chemin = objFolder.self.Path

    If SecuriteSlash > 0 Then ChoisirDossier = Left(ChoisirDossier, Len(ChoisirDossier) - 1)

    .Label2.Caption = "Disque dur: " & Volume 'Disque dur
    .Label3.Caption = "Répertoire: " & Chemin 'Chemin répertoire

    EndProc:
    Set objFolder = Nothing
    Set objShell = Nothing
    End With
    End Function
    0
  8. vieuxray
     
    Salut f894009

    Merci pour ta réponse c'est gentil

    Quand je selectionne le répertoire et en supposant que j'appuie sur "annuler" car je me suis tromper cela engendre une erreur dans le code UserForm_Click()

    l'erreur d'execution "5" ou appel de procédure incorrect

    la variable Chemin est declarer Public dans un module

    Merci de ton aide bonne fin d'après midi

    Cdlt Raymond


    Sub UserForm_Click()
    Dim Fso, F, Fc
    ListBox1.Clear
    Columns("A:A").ClearContents
    Set Fso = CreateObject("Scripting.FileSystemObject")

    Set F = Fso.Getfolder(Chemin) '*** Erreur mets ligne se mets en jaune

    For Each Fc In F.Files
    ListBox1.AddItem Fc.Name
    Next
    Set Fso = Nothing

    '*** Transfert automatiquement la liste vers la Feuil1
    With ListBox1
    Sheets("Feuil1").Range(Cells(1, 1), Cells(.ListCount, 1)) = .List
    End With
    Label1.Caption = ListBox1.ListCount & " Films" 'Nombres de films
    End Sub
    0
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Comment est appelee la fonction ChoisirDossier ?????
    0
  10. vieuxray
     
    Bonsoir f894009

    j'appelle la fonction de cette manière ci-dessous

    ToggleButton je n'avais jamais utiliser alors j'ai essayer pour le fun
    je vais mettre des commandButton par la suite

    merci a toi bonne soirée

    Cdlt Ray


    Private Sub ToggleButton7_Click()
    If ToggleButton7 = True Then
    ToggleButton7.BackColor = vbGreen

    Chemin = ChoisirDossier 'Appel de la fonction

    ToggleButton7 = False
    ToggleButton7.BackColor = vbGreen
    End If

    End Sub
    0
  11. vieuxray
     
    Bonjour f894009

    Bien recu le fichier merci bien

    effectivement cela fonctionne avec ton fichier

    je me permets de t'envoyer le mien, si tu peux svp regarder quand tu aura du temps

    ce qui cloche, fait du fichier comme bon te semble, j'ai la sauvegarde.

    Merci a toi pour ton aide, bon début de semaine.

    voici le lien: http://www.cjoint.com/?CLEihrUuXRz

    Cdlt Ray
    0
  12. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Je recupere le fichier et vous tiens au courant.

    A+
    0
  13. vieuxray
     
    Salut

    Merci pour les modifications c'est sympa a toi

    bon j'ai toujours l'erreur

    Si je clic par ex: sur "annuler" lors du choix du D-D alors j'ai l'erreur, donc
    tant qu'une liste n'ai pas afficher la moindre manipulation provoque l'erreur.

    Mais dès qu'une liste est afficher alors plus de problème.

    je pense qu'il faudrait tester: que tant que la liste est vide ou qu'une liste n'ai pas afficher aucune action sur les ToggleButton ne doit etre possible

    Merci bien pour ton aide, bonne après midi

    Ray
    0
  14. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Il est sur que si vous cliquez sur un des boutons sans avoir choisi un dossier et une liste, ca va pas le faire!!!!!!

    Il faut que vous ne puissiez pas cliquez sur les boutons si pas de liste affichee
    0
  15. vieuxray
     
    Re,
    Merci pour la réponse et effectivement

    Voila tout le problème est la

    Je suis dessus, j'essai de trouver comment faire

    (1) Bloquer les boutons pour éviter toutes actions et ainsi éviter les erreurs.

    (2) il me faut choisir le disk dur voir un sous répertoire et tester de manière a afficher ma liste sans erreur,
    quelle soit la raison par (annuler) ou X raison puis une fois la liste afficher.

    (3) Donner l'autorisation aux boutons seulement a ce moment.

    mais je ne n'arrive pas, ca fait déja un moment que j'essai sans bon résultat.

    Voila Mr f894009 bon bah j'y retourne, trop chiant ces messages d'erreurs.

    A plus tard et bonne soirée

    Cdlt Ray
    0
  16. vieuxray
     
    Salut polux31

    Merci pour ta réponse, pour ce que tu propose je pense que je vais y arriver

    le probleme c'est au moment de choisir

    (1) le disk dur
    (2) le ou les sous répertoires

    le soucis c'est qu'il ne faut pas faire d'erreur ou bien annuler ou abandonner en route du choix ou bien X autres raisons, sinon ca plante et m'envoie les messages désagréables.

    ceci c'est pas grave, ca plante pas Excel, déja bien, mais juste de ne pas avoir les messages.

    Merci pour les infos

    Bonne journée a toi

    Cdlt Ray
    0
  17. vieuxray
     
    Salut f894009,

    Merci pour le fichier, alors ton fichier fonctionne bien

    j'ai repris et adapter sur mon programme qui a évoluer

    maintenant tout fonctionne également.

    Merci beaucoup pour ton aide et surtout pour ta patience, je sais bien que ce n'ai pas toujours facile de se comprendre, enfin le résultat est la et c'est l'essentiel.

    Je te souhaite un excellent réveillon de jour de l'an et encore avec tous mes remerciements 2013 ihihih

    Bien cordialement Raymond
    merci bonne soirée a toi et tes proches
    0
  18. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour et meilleurs voeux a vous et votre famille
    0
    1. vieuxray
       
      Bonjour f894009

      Merci beaucoup c'est très sympa, qu'il en soit de mème, meilleurs voeux a vous et tous vos

      proches et naturellement une très bonne santé pour tous, sans quoi rien n'est possible .

      Bonne année 2014

      Raymond
      0