Test fonction si

Résolu
Decapo78 Messages postés 10 Statut Membre -  
 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.

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Decapo78 Messages postés 10 Statut Membre
       
      Je te remercie pour ta solution elle fonctionne.
      c'est exactement ça
      je suivrai le conseil de Jordane

      Merci Merci
      0
    2. Lescollgien24
       
      Bonjour cette solution marche a tous les cou Mr bcp
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. Decapo78 Messages postés 10 Statut Membre
       
      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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Decapo78 Messages postés 10 Statut Membre
         
        tu imaginais d'avoir une macro indépendante des fichiers excel? où pensais-tu l'enregistrer?
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > yg_be Messages postés 23437 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