Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère générique

dascoco

XLDnaute Nouveau
Bonjour à tous,

Je cherche désespérément une solution à mon problème.

J'ai la colonne A qui contient diverses informations, cette colonne est alimentée régulièrement.
Ces infos sont du texte, du chiffre, les deux (dans la même cellule), ou vide.

Je cherche à récupérer la dernier saisi des caractères "+tk" ou " +tk" ou " + tk" ou encore toute syntaxe utilisant les caractères "+" et "tk", la syntaxe diffère selon la personne qui saisi l'info, c'est pourquoi je passe par des caractères génériques.
Et pour vous simplifier la chose, je ne maîtrise absolument pas le VBA.

J'ai joint un fichier pour être plus clair je l'espère, la formule pour le résultat attendu se trouve en F6.

Si vous pouviez m'aider ce serait super, et dites moi s'il manque des informations.

Cordialement.
 

Pièces jointes

  • Classeur2.xlsx
    11.1 KB · Affichages: 45
  • Classeur2.xlsx
    11.1 KB · Affichages: 50
  • Classeur2.xlsx
    11.1 KB · Affichages: 51
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

Bonjour, dascoco, le Forum,

Une suggestion avec le code suivant, placé dans un module standard.

Code:
Option Explicit
Sub Dernière_ligne_où_x_apparaît()
    Dim i As Long
    Application.ScreenUpdating = False
    Columns("a:b").Insert
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    For i = Cells(Rows.Count, "c").End(xlUp).Row To 1 Step -1
        If Range("c" & i) Like "*+*" And Range("c" & i) Like "*tk*" Then Range("c" & i).Offset(, -2) = Range("A" & i).Row
    Next
    [b1].FormulaR1C1 = "=MAX(C[-1])"
    MsgBox "Ligne : " & [b1].Value
    Columns("a:b").Delete
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

dascoco

XLDnaute Nouveau
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

Bonjour Doublezero,

Comme je le disais, je ne maîtrise pas le VBA, je préférerai éviter de passer par le VBA en cas de besoin de modification.

Je te remercie de ton aide tout de même, et vais tester au cas où il n'y aurai pas d'autre solution.

Cordialement.
 

dascoco

XLDnaute Nouveau
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

J'ai testé le code, et il fonctionne. Cependant, je souhaiterai avoir la réponse en F6 et non dans une textbox.

Sinon j'ai testé une recherchev et cela me donne le premier resultat similaire de la colonne, serait il possible de le faire mais en partant du bas?

Cordialement.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

Bonsoir dascoco, DoubleZero :),

Un essai par formule matricielle à valider par Ctrl+Maj+Entrée:
Code:
=MAX(SI(ESTNUM(CHERCHE("+tk";SUBSTITUE(A1:A22;" ";"")));LIGNE(A1:A22)))

Cette formule est insensible à la casse (accepte +tk, + tk, + TK, +TK, etc.). Si seul +tk ou + tk (en minuscule) est recherché, remplacer dans la formule CHERCHE par TROUVE.

Si plusieurs espaces entre le + et tk sont acceptés, (ex: +_____ tk), on peut utiliser la formule matricielle:
=MAX(SI(ESTNUM(CHERCHE("+tk";SUBSTITUE(SUPPRESPACE(A1:A22);" ";"")));LIGNE(A1:A22)))
 

Pièces jointes

  • dascoco-Classeur2-v1a.xlsx
    12.5 KB · Affichages: 27
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

Bonjour, dascoco, mapomme :D, le Forum,

... je souhaiterai avoir la réponse en F6 et non dans une textbox...

Dans ce cas, peut-être ainsi :

Code:
Option Explicit
Sub Dernière_ligne_où_x_apparaît()
    Dim i As Long
    Application.ScreenUpdating = False
    Columns("a:b").Insert
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    For i = Cells(Rows.Count, "c").End(xlUp).Row To 1 Step -1
        If Range("c" & i) Like "*+*" And Range("c" & i) Like "*tk*" Then Range("c" & i).Offset(, -2) = Range("A" & i).Row
    Next
    [b1].FormulaR1C1 = "=MAX(C[-1])"
    [h6] = [b1].Value
    Columns("a:b").Delete
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

dascoco

XLDnaute Nouveau
Re : Obtenir le numéro de ligne d'une cellule dans une colonne selon un critère génér

Bonjour à tous,

Un mois est déjà passé depuis ma dernière visite beaucoup de travail je n'ai pas pu me pencher sur la question depuis. je vous remercie tous les deux de votre.
J'ai opté pour la réponse de Mapomme qui me convient tout à fait.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG