Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3017 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb vba.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb vba.

n°993226
porcinet82
Posté le 25-02-2005 à 09:12:39  profilanswer
 

Je voudrai faire une vérification par exemple sur la colonne A des valeurs qui s'y trouvent. plus precisemment je voudrai surligner en jaune toutes les valeurs qui ne sont pas uniquement des nombres (chaine de caractères).

mood
Publicité
Posté le 25-02-2005 à 09:12:39  profilanswer
 

n°993278
knakes
Posté le 25-02-2005 à 10:21:56  profilanswer
 

Essaye cela :

Code :
  1. For i = 1 To Range("A1" ).End(xlDown).Row
  2. If IsNumeric(Range("A" & i).Value) = False Then
  3. Range("A" & i).Font.Color = &HFFFF&
  4. End If
  5. Next i

Si al valeur est un nombre, rien ne se passe. Si la cellule est vide aussi. Si la cellule contient quelquechose qui n'est pas un nombre, le texte de celle-ci est mis en couleur (jaune ici). la couleur peut être donnée en Hexadécimal (&H........& ) ou "code vb" ( vbblue, vbred ..) :D  
Si ta sélection concerne la colonne " G ", il faut changer les " A " et mettre " G " a la place.
Si ta sélection commence à la ligne " 3 ", il faut remplacer le " 3 " au début de la boucle (For i = 3 ..).
Si ta sélection s'arrête à la ligne " 48 ", il faut remplacer " Range("A1" ).End(xlDown).Row " par " 48 ".
Désolé si tu savais tout cela mais c pour que tous le monde puisse comprendre.
Voila.

n°993375
porcinet82
Posté le 25-02-2005 à 12:05:19  profilanswer
 

Ok merci pour ta solution, ca marche bien.
le pb c que qq fois je peux avoir dans la meme cellule un chiffre et une lettre (ex: 4a).
je voudrai que dans ce cas de figure, il se mette d'une autre couleur

n°993399
porcinet82
Posté le 25-02-2005 à 12:37:50  profilanswer
 

Pour info g essayé de passer par un une affectation ds une variable d'un "right$(nom var, 1)" et de tester cette valeur mais je compren pas pkoi ca veu pas marcher
 
voila mon prog :
 
For i = 2 To 15
If IsNumeric(Range("A" & i).Value) = False Then
    Range("A" & i).Font.Color = vbRed
    AnyString = Selection.Offset(0, 0).Value
    MyStr = Right(AnyString, 1)
    If MyStr = (IsNumeric(Range("A" & i).Value) = False) Then
        Range("A" & i).Font.Color = vbGreen
    End If
End If
Next i

n°993404
knakes
Posté le 25-02-2005 à 12:48:24  profilanswer
 

Il suffit de demander  :D    

Code :
  1. For i = 1 To Range("A1" ).End(xlDown).Row
  2.   If IsNumeric(Range("A" & i).Value) = False Then
  3.      For j = 1 To Len(Range("A" & i).Value)
  4.       If IsNumeric(Left(Right(Range("A" & i).Value, j), 1)) = True Then
  5.         Range("A" & i).Font.Color = vbRed
  6.         Exit For
  7.       End If
  8.      Next j
  9.    If Not Range("A" & i).Font.Color = vbRed Then
  10.      Range("A" & i).Font.Color = vbBlue
  11.    End If
  12.   End If
  13. Next i

Voila même explication que tout a l'heure.  :D  
Sauf que si la valeur n'est pas un nombre, on décompose la chaîne. Si un des caractère est un nombre alors on affecte la couleur rouge.
Si la chaine n'a pas de rouge, elle est bleue (elle ne contient que du texte). Si c'est un nombre, la cellule reste noire.
Par contre, si une des cellule est vide, la boucle s arrête. :o  
Mais bon, voila.


Message édité par knakes le 25-02-2005 à 12:50:33
n°993453
porcinet82
Posté le 25-02-2005 à 13:53:15  profilanswer
 

merci c sympa de ta part ca marche nikel

n°993475
porcinet82
Posté le 25-02-2005 à 14:23:42  profilanswer
 

Une dernière question, je voudrai remplir la cellule d'une couleur plutot que de changer la couleur des caracteres

n°993699
knakes
Posté le 25-02-2005 à 16:50:48  profilanswer
 

Suffit de demander.

Code :
  1. Range("A" & i).Interior.Color = vbBlue

Voilà.

n°993805
porcinet82
Posté le 25-02-2005 à 19:09:10  profilanswer
 

Merci !!!

n°997774
bapho13
Usager usant
Posté le 02-03-2005 à 00:45:33  profilanswer
 

la fonction Left marche sous VBA ?? Mais alors à quoi sert Mid ??? ( Quel feuilletton passionnant la vie des fonctions !)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb vba.

 

Sujets relatifs
Plus de sujets relatifs à : pb vba.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)