Extraire numéro de ligne d'une formule

rouillld

XLDnaute Nouveau
Bonsoir à toutes et à tous,

Je ne suis pas une star en vba et Google n'a pas donné réponse à ma question (sans doute que je la formule mal).

Je vais essayer d'être le plus clair possible... Tout est expliqué dans le fichier joint.

La colonne C de la feuille 1 de mon fichier Excel fait référence à un cellule unique de la feuille 2 par une formule =Feuil2!A5 par exemple.

J'aimerai récupérer par macro le numéro de ligne de cette formule dans une autre colonne, 5 pour l'exemple précédent, sachant que ce numéro peut être très grand (tableau Excel de 10000 lignes environ).

Je ne sais pas trop comment récupérer la chaine de caractère (avec formula je suppose ?) ni comment extraire le numéro de ligne.

Merci d'avance et bonne soirée

Jérôme
 

Fichiers joints

Fred0o

XLDnaute Accro
Re : Extraire numéro de ligne d'une formule

Bonsoir rouillld,

J'ai examiné ton fichier et j'ai une solution à te proposer qui me parait plus simple :

Pourquoi ne pas remplacer ta formule en Feuil2!B2 par
Code:
=SOMME.SI(Feuil1!C$1:C$19;A2;Feuil1!B$1:B$19)
Puis tirer la formule vers le bas.

Ainsi, tu peux supprimer l'étape intermédiaire du n° de ligne et cela marche très bien.

A+
 

rouillld

XLDnaute Nouveau
Re : Extraire numéro de ligne d'une formule

Merci fredOo pour ta réponse.

J'a facilité l'exemple afin qu'il soit plus facile à comprendre, mais le problème est plus compliqué.

Pour une raison sans doute trop longue à expliquer, je dois pouvoir récupérer le numéro de ligne contenu dans les formules de la colonne C de la feuille 1. De ce fait, je pourrai faire un somme si par macro dans la colonne B de la feuille 2. L'exemple en formule somme.si était un exemple. J'ai fait le code suivant (simplifié):

Sub test()

Dim l As Integer

For l = 2 To 6

Sheets("Feuil2").Cells(l, 4).Value = Application.WorksheetFunction.SumIf(Sheets("Feuil1").Range("G2:G19"), l, Sheets("Feuil1").Range("B2:B19"))
Next l

End Sub

Cependant, je voudrais qu'au lieu d'avoir Range("G2:G19") (correspondant aux valeurs que j'ai saisi manuellement pour les numéro de ligne de la colonne C, pour illustrer l'exemple), la macro extrait "toute seule" le numéro de ligne des formules contenues dans la colonne C : 5 de feuil2A5 en C2, 4 de feuil2A4 en C3, 5 de feuil2A5 en C4 et ainsi de suite.

Peut-être faut-il faire une étape supplémentaire et extraire la chaine de caractère des formules (ex : =Feuil2!A5 en C2), puis extraire le 5 ?
 

Modeste geedee

XLDnaute Barbatruc
Re : Extraire numéro de ligne d'une formule

Bonsour®
La colonne C de la feuille 1 de mon fichier Excel fait référence à un cellule unique de la feuille 2 par une formule =Feuil2!A5 par exemple.
comment est affectée cette formule ?
pourquoi ne pas pas utiliser une liste de validation ...

J'aimerai récupérer par macro le numéro de ligne de cette formule dans une autre colonne, 5 pour l'exemple précédent, sachant que ce numéro peut être très grand (tableau Excel de 10000 lignes environ).
pourquoi par macro ??? (il n'y aucun code VBA dans l'exemple fourni)
par formule :
N°ligne =EQUIV(C2;Feuil2!$A$1:$A$6)
Je ne sais pas trop comment récupérer la chaine de caractère (avec formula je suppose ?) ni comment extraire le numéro de ligne.
exemple la feuille 1 étant active :

VB:
Dim VarNoLigne As Integer ' ou bien Long
VarNoLigne= Evaluate("=MATCH(C5,'Feuil2'!$A$1:$A$6,0)")
Msgbox VarNoLigne
:cool:
envisager également l'utilisation de tableau Croisé dynamique
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas