texte dans une cellule selon valeur d'un autre cellule

cyrikou

XLDnaute Occasionnel
Bonjour à tous.
Je souhaiterai faire un avis automatique selon une valeur. J'ai donc utiliser "SELECT CASE". Cela fonctionne pour une cellule. J'aimerai automatiser tout cela et éviter de faire un programme pour chacune des cellules. Mais comment faire ? Mon problème est que les cellules ne sont pas contigues, et que leur position varie selon les lignes. Les seules constantes sont les colonnes. Comment détecter que la cellule "résultat" soit active? Si j'utilise une plage de cellules et l'instruction "FOR EACH", j'aurai un avis pour chacune des lignes.:confused:
Comment éviter cela merci:cool:
ps voir le fichier joint !
 

Pièces jointes

  • test.xlsm
    14.9 KB · Affichages: 18
  • test.xlsm
    14.9 KB · Affichages: 18

tototiti2008

XLDnaute Barbatruc
Re : texte dans une cellule selon valeur d'un autre cellule

Bonjour cyrikou,

à tester

Code:
Sub avis()
Dim i As Long
For i = 6 To Range("B" & Rows.Count).End(xlUp).Row Step 2
    If Cells(i, 1).Value <> "" And Cells(i, 2).Value <> "" Then
        Select Case Cells(i, 2)
        Case 0.1 To 24.99
        Cells(i, 4) = "Notion non acquise!"
        Case 25 To 39.99
        Cells(i, 4) = "Résultats très moyens !"
        Case 40 To 59.99
        Cells(i, 4) = "Résultats moyens "
        Case 60 To 79.99
        Cells(i, 4) = "C'est bien !"
        Case 80 To 100
        Cells(i, 4) = "C'est très bien"
        End Select
    End If
Next i
End Sub

Edit : Coucou 00 :)
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : texte dans une cellule selon valeur d'un autre cellule

Bonjour, cyrikou, tototiti :D, le Forum,

Une autre suggestion :

Code:
Option Explicit
Sub Avis()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = Cells(Rows.Count, "b").End(xlUp).Row To 6 Step -1
        If IsNumeric(Range("b" & i)) Then
            Select Case Range("b" & i)
            Case 0.1 To 24.99
                Range("b" & i).Offset(, 2) = "Notion non acquise!"
            Case 25 To 39.99
                Range("b" & i).Offset(, 2) = "Résultats très moyens !"
            Case 40 To 59.99
                Range("b" & i).Offset(, 2) = "Résultats moyens "
            Case 60 To 79.99
                Range("b" & i).Offset(, 2) = "C'est bien !"
            Case 80 To 100
                Range("b" & i).Offset(, 2) = "C'est très bien"
            End Select
        End If
    Next
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : texte dans une cellule selon valeur d'un autre cellule

Bonsoir,

En D6: =avis(B6)

Code:
Function avis(c)
        Select Case c
          Case 0.1 To 24.99
            avis = "Notion non acquise!"
          Case 25 To 39.99
            avis = "Résultats très moyens !"
          Case 40 To 59.99
            avis = "Résultats moyens "
          Case 60 To 79.99
            avis = "C'est bien !"
          Case 80 To 100
           avis = "C'est très bien"
        End Select
End Function

ou

=RECHERCHEV(B6;{0."Nul";25."Très Moyen";50."Moyen";80."Très Bien"};2;VRAI)

ou

=INDEX({"Nul";"TM";"M";"TB"};EQUIV(B6;{0;25;50;80};1))

ou

=RECHERCHEV(B6;Lavis;2;VRAI)

JB
 

Pièces jointes

  • Test.xlsm
    16.7 KB · Affichages: 20
  • Test.xlsm
    16.7 KB · Affichages: 25
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : texte dans une cellule selon valeur d'un autre cellule

Bonsoir Boisgontier, gosselien, :)
Re,

ou

Code:
=RECHERCHEV(B6;{0."nul";25."tm";40."m";60."tb";80."super"};2)

Edit : Arf pas vu déjà proposé :)
Bon ben alors... avec la matrice de Boisgontier

Code:
=DECALER($H$3:$I$3;EQUIV(B6;$H$4:$H$7;1);0) (I:I)
 
Dernière édition:

cyrikou

XLDnaute Occasionnel
Re : texte dans une cellule selon valeur d'un autre cellule

Merci à tous, voici une autre question:
comment lancer la macro juste quand on affiche la feuille? c'est à dire que quand je navigue dans le classeur, j'aimerai que la macro s'exécute automatiquement et quand j'accède à la feuilles, les infos ont été mises à jour.
Merci
 

Discussions similaires

Réponses
4
Affichages
236