VBA feuille active

VBA feuille active - VB/VBA/VBS - Programmation

Marsh Posté le 24-05-2010 à 12:57:09    

Bonjour,
 
J'ai réalisé un programme permettant grâce à un bouton d'ouvrir un document et sur ce document de faire de la mise en forme. J'ai réussi pour les filtres ou les bordures de dire que c'était sur la feuille active que je voulais faire ces changements en rajoutant devant :
 
ActiveSheet. Cells.AutoFilter (pour faire un filtre par exemple)
 
Cependant je voudrais mettre aussi une condition sur une des colonnes en disant que si le chiffre est inférieur à 0 qu'il soit en gras et rouge donc j'ai fait la macro et elle marche le problème c'est qu'elle le fait sur le fichier où j'ai créé le bouton et non sur le fichier ouvert et dans ce cas je ne sais pas quoi mettre avant la boucle pour lui spécifier que c'est sur la feuille active qu'il faut le faire
 
voila le code pour le gras et la couleur :
For i = 1 To max
If Range("G" & i) < 0 Then
'permet de mettre le texte en rouge
Range("G" & i).Font.ColorIndex = 3
'permet de mettre le texte en gras
Range("G" & i).Font.Bold = True
End If
Next
 
Si je n'ai pas été clair dans ma demande n'hésité pas à me demander plus d'explication
 
Merci de votre aide

Reply

Marsh Posté le 24-05-2010 à 12:57:09   

Reply

Marsh Posté le 25-05-2010 à 11:44:56    

Hello
 
Je ne comprends pas trop le souci etant donné que tu fais ta mise en forme sur le fichier ouvert... La suite du code devrait elle aussi se derouler sur le fichier ouvert.
Tu dois avoir qques choses qui passe a l'autre fichier...
 
Sinon, si le fichier ne contient pas de données confidentielles (tu peux les supprimer aussi) fais moi suivre le fichier. Il y a mon mail dans mon profil.
 
Cordialement


Message édité par SuppotDeSaTante le 25-05-2010 à 11:58:39

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 26-05-2010 à 16:59:58    

titejessye a écrit :

Bonjour,
 
J'ai réalisé un programme permettant grâce à un bouton d'ouvrir un document et sur ce document de faire de la mise en forme. J'ai réussi pour les filtres ou les bordures de dire que c'était sur la feuille active que je voulais faire ces changements en rajoutant devant :
 
ActiveSheet. Cells.AutoFilter (pour faire un filtre par exemple)
 
Cependant je voudrais mettre aussi une condition sur une des colonnes en disant que si le chiffre est inférieur à 0 qu'il soit en gras et rouge donc j'ai fait la macro et elle marche le problème c'est qu'elle le fait sur le fichier où j'ai créé le bouton et non sur le fichier ouvert et dans ce cas je ne sais pas quoi mettre avant la boucle pour lui spécifier que c'est sur la feuille active qu'il faut le faire
 
voila le code pour le gras et la couleur :
For i = 1 To max
If Range("G" & i) < 0 Then
'permet de mettre le texte en rouge
Range("G" & i).Font.ColorIndex = 3
'permet de mettre le texte en gras
Range("G" & i).Font.Bold = True
End If
Next
 
Si je n'ai pas été clair dans ma demande n'hésité pas à me demander plus d'explication
 
Merci de votre aide


 
L'objet Range s'applique sur un activesheet si tu ne précise pas
activesheet s'applique sur activeworkbook si tu ne précise pas
 
bref pour réécrire le truc correctement 'avec des objets précis' c'est comme ça  
 
 
With Workbooks("non de ton classeur" )
   With .Worksheets("non de ta feuille" )
 
     .Cells.AutoFilter
 
      For i = 1 To max  
         If .Range("G" & i) < 0 Then  
            'permet de mettre le texte en rouge  
            .Range("G" & i).Font.ColorIndex = 3  
            'permet de mettre le texte en gras  
            .Range("G" & i).Font.Bold = True  
         End If  
      Next
   end with
end with


Message édité par Xxxaaavvv le 26-05-2010 à 17:00:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed