Mettre la couleur jaune sur la premiere rangee

Bonjour, j'utilise ActiveWindow.ScrollRow = variable.Row afin d'afficher en premiere ligne ce que je cherchais, mais quel serait le truc pour mettre en jaune le fond des cellules de cette ligne?

 If Not Intersect(Columns("i"), Target) Is Nothing And actif6 = True Then
       derlig = Sheets("RAM").Range("B200").End(xlUp).Row
       contenu = ActiveCell
       Set Plage = Sheets("RAM").Range("A2:B" & derlig)
       For Each variable In Plage
            If variable <> "" Then
                If contenu Like "*" & variable & "*" Then 
                      Windows("LOGICIEL 60.xls:2").Activate
                      ActiveWindow.ScrollRow = variable.Row              'on affiche la ligne de la fenetre "RAM" ds la premiere ligne.
                     'Sheets("RAM").Range("A" & variable.row & ":H" & variable.row ).Font.ColorIndex = 8   'on met en jaune le fond des cellules de la ligne          
                      GoTo 1
                 End If
            End If
        Next variable

Salut Capucin,

Ce n’est pas facile de te répondre sans avoir ton fichier à disposition.

Mais tu as cette ligne que tu as mis en commentaire

Sheets("RAM").Range("A" & variable.Row & ":H" & variable.Row).Font.ColorIndex = 8    'on met en jaune le fond des cellules de la ligne

Tu devrais essayer de la réactiver et d’y placer un point d’arrêt. Tu pourrais alors contrôler quelle est la valeur de ‘variable.Row’ à ce moment-là et si elle correspond bien à ton attente.

Ensuite tu dois également contrôler si c’est bien la feuille ‘RAM’ qui est alors à l’écran, sinon essaie d’utiliser ‘Activesheet’ à la place de ‘Sheets("RAM")’.

Ensuite si tu veux colorier le fond des cellules, utilise ‘Interior’ à la place de ‘Font’ (= police).

Et enfin last but not least, la ‘ColorIndex’ jaune est la 6 et non pas la 8 (une sorte de bleu pâle).

A te relire.

Salut, merci pour tout les conseil. Le point d'arret, je ne m'en etait jamais servi. J'y suis presque. Excuses-moi de ne pas fournir de fichier, il est pas mal gros.

Peux-tu me dire pourquoi les 2 dernieres ligne ne fonctionne pas, ma syntaxe ne dois pas etre bonne.

ActiveWindow.ScrollRow = variable.Row 'variable est une cellule excel
  variable.select
  ActiveCell.Interior.ColorIndex = 7
  'ActiveCell.Range("A" & ActiveCell.Row & ":B" & ActiveCell.Row).Interior.ColorIndex = 7 'mauve
   'ActiveCell.Range("A" & variable.Row & ":B" & variable.Row).Interior.ColorIndex = 7 'mauve 
Yvouille a écrit :

Ce n’est pas facile de te répondre sans avoir ton fichier à disposition.

Tu devrais essayer de ... placer un point d’arrêt. Tu pourrais alors contrôler quelle est la valeur de ‘variable.Row’ à ce moment-là et si elle correspond bien à ton attente.

Ensuite tu dois également contrôler si c’est bien la feuille ‘RAM’ qui est alors à l’écran, sinon essaie d’utiliser ‘Activesheet’ à la place de ‘Sheets("RAM")’

Sans avoir ton fichier à disposition, je ne sais que tu dire de plus. Est-ce que tu dois simplement écrire

ActiveCell.Range("A" & variable & ":B" & variable).Interior.ColorIndex = 7

Tu peux compresser un fichier, en enlever des feuilles inutiles à la démonstration, ne laisser que 10 lignes représentatives sur les 153'000 de base, passer par le site C-Joint http://cjoint.com/, etc., etc.

Amicalement.

c joint 2013

Rebonjour Yvouille! Je viens de trouver une facon de faire. La difficulte principale vient du fait que j'ai 2 fenetres a l'ecran et que je fais une recherche dans une fenetre pour afficher la cellule trouver dans l'autre. Pour moi, ca complique un peu les choses. Il semble que ActiveCell ne marche pas meme si je prend soins d'activer la fenetre visee. Je dois plutot mettre le path au complet: Sheet("RAM"). range ...

Merci pour le lien, ca pourra surement me servir!

Capucin

Selon moi, si tu travailles avec deux fenêtres, ce n'est que par commodité visuelle. Mais pour les codes, je ferrais comme si je ne travaillais qu'avec une seule fenêtre. Je m'explique : tu as la Feuil1 visible dans ta fenêtre 1 et la Feuil2 visible dans ta fenêtre 2. Si dans ton code tu inscrit Sheets("Feuil1").range("A1") =Sheets("Feuil2").range("A1"), Excel s'en fout un peu de savoir si tu as ces feuilles visibles à l'écran dans deux fenêtres ou pas.

Par contre, si tu veux utiliser ActiveSheet, le simple fait d'activer la fenêtre X sans activer la feuille que tu y vois, ne fait pas que cette feuille est celle qui est active !!!!!!!

Amicalement.

Oui, j'utilise jusqu'a 3 fenetres a la fois, et c'est par commodite. Je comprend bien ton premier point, mais pas tout a fait le 2ieme. Lorsque j'ai eu des bug et que j'avais plus d'une fenetre d'ouverte, il me semble que le probleme etait presque toujours que je n'accedais pas a la bonne feuille. J'ai utiliser souvent Windows("LOGICIEL 60.xls:?").Activate au debut d'un bout de code, mais peut etre, inutilement parfois!

Si je t'enverrais mon fichier, tu pourrais surement me faire des commentaires constructif comme des choses inutiles ou a eviter. Ton niveau en VBA est surement nettement superieur au mien. Par contre, l'application est assez complexe, alors je ne sais pas si tu t'y retrouverais.

Il m'est arrivé personnellement d'utiliser jusqu'à 4 fenêtres conjointement

Je n'ai cependant jamais dû travailler avec l'activation de ces fenêtres dans mes codes. Je crois que tu te compliques inutilement la vie.

Bonnes salutations.

Parfait Yvouille, je vais donc essayer d'eliminer ces activations inutiles.

Merci pour tes conseils!

Capucin!

Tout au plus une dernière idée : Si vraiment tu dois travailler avec plusieurs fenêtres ouvertes en même temps, tu construits tout ton code comme si tu n'avas qu'une seule fenêtre (en lançant ta macro en mode ScreenUpdating = True, tu verrais donc les feuilles qui seraient sélectionnées changer à l'écran dans l'une ou l'autre fenêtre) et tout à la fin du code, tu remettrais de l'ordre au sujet de quelle feuille doit être visible dans quelle fenêtre par quelques instructions finales (par exemple si à la fin du code la feuille 3 est visible dans la fenêtre 2 à la place de la feuille 5 comme désiré, tu places juste une ligne de code supplémentaire pour cela).

NB : C'est vraiment vrai que je travaille souvent avec plusieurs fenêtres ouvertes en même temps, lors de la création d'un code basé sur plusieurs feuilles ou plusieurs fichiers. Tu dois alors toujours faire attention de savoir quelle feuille est activée dans quelle fenêtre lorsque tu lances le code manuellement par F8. Mais lorsque le code était fini, je n'ai jamais eu besoin de laisser plusieurs fenêtres ouvertes pour l'utilisation finale du fichier.

A la prochaine.

Rechercher des sujets similaires à "mettre couleur jaune premiere rangee"