• Initiateur de la discussion Initiateur de la discussion Elsa1603
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Elsa1603

Guest
Bonjour à tous,

Pouvez-vous m'éclairer à propos d'une formule que je recherche ? Voici ci-joint le problème.
Le contenu de la cellule G5 doit être égale au contenu de la cellule qui est à gauche de la cellule dont le contenu est "1" entre D4 et D11. Donc G5 doit être égale à la valeur 126.


Merci 🙂
 

Pièces jointes

Re : Excel Formule

Bonjour à tous,

Une 4ème solution pour ceux qui aiment bien avoir une formule unique.

Formule matricielle en G5 à valider par Ctrl+Maj+Entrée et tirer à droite et en bas :

Code:
=INDEX($C$1:$C$23;PETITE.VALEUR(SI($D$1:$D$23=G$3;LIGNE($D$1:$D$23));$F5))
Fichier joint.

A+
 

Pièces jointes

Re : Excel Formule

Re,

Pas de VBA ???

Pourquoi pas, mais ici c'est nettement plus compliqué que les formules.

Macro évènementielle dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, ncol%, mot$, c As Range, n&, a, b
Set dest = [F5] 'début du tableau de destination, à adapter
ncol = 9 'nombre de colonnes, à adapter
mot = UCase("godet") 'mot cherché, à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
dest.Resize(Rows.Count - dest.Row + 1, ncol).ClearContents 'RAZ
For Each c In Me.UsedRange
  If UCase(c) = mot Then
    n = n + 1
    With c.CurrentRegion
      a = Application.Transpose(.Columns(3))
      b = Application.Transpose(.Columns(2))
      tri a, b, 1, UBound(a)
      dest(n).Resize(, ncol) = b
      dest(n) = n
    End With
  End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub

Sub tri(a, b, gauc, droi)      ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      temp = b(g): b(g) = b(d): b(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub
Fichier joint, validez ou modifiez une cellule quelconque.

A+
 

Pièces jointes

Re : Excel Formule

Re,

Noter que si les titres des séries sont au-dessus des tableaux il n'y a pas à modifier la macro.

Fichier (1 bis).

Edit : si les séries portent un nom on utilisera plutôt :

Code:
'-----
      dest(n) = Split(.Cells(1))(1)
Fichier (1 ter).

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 Macro
Réponses
6
Affichages
244
Réponses
7
Affichages
256
Réponses
2
Affichages
349
Réponses
2
Affichages
182
Retour