Test fonction si

Résolu
Decapo78 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
 Lescollgien24 -
Bonjour à tous
Je ne suis pas un expert en VBA d’où je viens solliciter votre aide.
Je souhaite faire une macro qui à partir d’une colonne donnée exemple C remplace ou affiche sur la même colonne le message A, B, C ou D.
C-a-d
De ma colonne C, j’ai plusieurs cellules et dans chaque cellule, j’ai des nombres allant de 0 a plus 60000.
Si dans une cellule, j’ai un nombre compris entre 0 et 9 alors il indique dans cette cellule le message texte « D »
Si dans une cellule, j’ai un nombre compris entre 10 et 249 alors il indique dans cette cellule le message texte « E »
Si dans une cellule, j’ai un nombre compris entre 250 et 4999 alors il indique dans cette cellule le message texte « F »
Si dans une cellule, j’ai un nombre compris entre 5000 et plus alors il indique dans cette cellule le message texte « G »
Si la cellule est vide, laisser la cellule vide.
S’il faut rajouter une colonne pour afficher le message texte ce n’est pas bien grave, je masquerai la colonne d’origine après.
Cette macro me permet de savoir les cellules en A, B, C ou D, car ma colonne contient plusieurs cellules.
Je ne souhaite pas une formule parce que c’est une opération répétitive que je mettrai en bouton d’exécution.
Je vous remercie d’avance pour votre aide.

A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Voici la macro:


Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1")
    NoCol = 3 'lecture de la colonne C
    For NoLig = 1 To Range("C" & Rows.Count).End(xlUp).Row
     Var = FL1.Cells(NoLig, NoCol)
    Select Case Var
                Case Is = ""
               FL1.Cells(NoLig, NoCol + 1) = ""
                Case Is < 10
              FL1.Cells(NoLig, NoCol + 1) = "D" 'colonne à droite supprimer + 1 si même colonne
              Case Is < 250
                  FL1.Cells(NoLig, NoCol + 1) = "E"
               Case Is < 5000
                FL1.Cells(NoLig, NoCol + 1) = "F"
                 Case Is > 5000
                 FL1.Cells(NoLig, NoCol + 1) = "G"
                  End Select
            Next
    Set FL1 = Nothing
End Sub


Tu ouvres l'autre classeur et tu lances ta macro.
Sinon tu suis les conseils de Jordane et tu l'enregistres en macro complémentaire. En cherchant sur le net tu trouveras la marche à suivre.

Voilà
2
Decapo78 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Je te remercie pour ta solution elle fonctionne.
c'est exactement ça
je suivrai le conseil de Jordane

Merci Merci
0
Lescollgien24
 
Bonjour cette solution marche a tous les cou Mr bcp
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, je pense que c'est facile avec une formule, qu'il sera facile de mettre dans toutes les lignes où c'est nécessaire.
je ne comprends donc pas ton "parce que".
0
Decapo78 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
je souhaite automatiser cette tâche, la raison est que j'ai plusieurs fichiers excel a traité et s'il faut mettre une formule je serai obligé de recopier cette formule à chaque fois. Ou bien il y'a une autre méthode qui permet de personnalisé la formule son excel?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Decapo78 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
tu imaginais d'avoir une macro indépendante des fichiers excel? où pensais-tu l'enregistrer?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Hello
Il pourrait la stocker dans une macro complémentaire (via un fichier xlam) et donc y avoir accès depuis n'importe quel autre classeur.
Ensuite, soit il fait une macro qui réalise ce qu'il veut... soit il fait une macro qui "colle" la formule automatiquement dans les cellules.
0