Problème pour un nouveau membre

titi49

XLDnaute Nouveau
bonjour à tous,

Me voici utilisateur débutant d'excel confronté à utiliser ce logiciel de manière avancé rapidement. C'est pourquoi je pense poser beaucoup de question durant les prochains mois.

Voici mon problème :

Je veux renvoyer en case A2 la phrase de titre de la colonne B si il y a un X en case B2 ou la phrase de titre de la colonne C si il y a un X en case C2... et ceux sur 5 colonnes au maximum.

Merci d'avance pour votre aide et vos réponses
 

jeanpierre

Nous a quitté
Repose en paix
Re : Problème pour un nouveau membre

Bonjour titi49, Bienvenue sur le forum,

Essaie ceci :

=si(b2="x";b1;si(c2="x";c1;si(d2="x";d1;si(e2="x";e1;si(f2="x";f1;"")))))

Sinon dépose nous un exemple de ton cas.

Bonne fin de journée.

Jean-Pierre
 

titi49

XLDnaute Nouveau
Re : Problème pour un nouveau membre

Merci à tous pour vos réponses.
J'avais trouvé la solution avec les SI... J'aimerais maintenant savoir si il est possible de garder les résultats présents (en colonne A) en supprimant toutes les source (Colonne B C D ...) de la formule
 

ROGER2327

XLDnaute Barbatruc
Re : Problème pour un nouveau membre

Bonjour à tous
Trois propositions à base de procédures événementielles :
  1. Un clic-droit sur l'en-tête d'une colonne renvoie la valeur de cet en-tête dans la cellule A2.
    Code:
    [COLOR="DarkSlateGray"][B]Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
       If Not Intersect(Target, Range("B1:E1,G1:H1")) Is Nothing Then Range("A2").Value = Target.Value: Cancel = True
    End Sub[/B][/COLOR]
  2. Un double-clic sur l'en-tête d'une colonne renvoie la valeur de cet en-tête dans la cellule A2 et inscrit X en-dessous de l'en-tête.
    Code:
    [COLOR="DarkSlateGray"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim plg As Range
       With Target
          Set plg = Range("B1:E1,G1:H1")
          If Not Intersect(.Cells, plg) Is Nothing Then
             Cancel = True
             Range("A2").Value = .Value
             plg.Offset(1, 0).ClearContents
             .Offset(1, 0) = "X"
          End If
       End With
    End Sub[/B][/COLOR]
  3. Écrire X (ou x) sous un en-tête de colonne et valider renvoie cet en-tête dans la cellule A2.
    Code:
    [COLOR="DarkSlateGray"][B]Private Sub Worksheet_CHange(ByVal Target As Range)
    Dim plg As Range
       With Target
          Set plg = Range("B2:E2,G2:H2")
          If Not Intersect(.Cells, plg) Is Nothing Then
             On Error GoTo E
             Application.EnableEvents = False
             If UCase(.Item(1).Value) = "X" Then
                plg.ClearContents
                .Value = "X"
                Range("A2").Value = .Offset(-1, 0).Value
             Else
                Range("A2").Value = ""
             End If
    E:       Application.EnableEvents = True
          End If
       End With
    End Sub[/B][/COLOR]
Dans ces exemples, les colonnes concernées sont B, C, D, E, G et H. On adaptera aux besoins en modifiant les lignes du genre
Code:
[COLOR="DarkSlateGray"][B]      Set plg = Range("B1:E1,G1:H1")[/B][/COLOR]
Les procédures sont à placer dans le module de la feuille concernée​
ROGER2327
#3072
 

Pièces jointes

  • Temp.xls
    20 KB · Affichages: 48
  • Temp.xls
    20 KB · Affichages: 48
  • Temp.xls
    20 KB · Affichages: 46

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 749
Messages
2 091 623
Membres
105 009
dernier inscrit
aurelien76110