Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sélectionner une plage de donnée entre 2 champs Textes.

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 !

miky973

XLDnaute Occasionnel
Bonjour,

Je rencontre un petit soucis, j'ai un fichier qui se met à jour continuellement et je veux créer un automatisme qui me permet de compter le nombre de ligne qui sont dans ce tableau.

Ce nombre de ligne étant variable, je souhaiterai comptabiliser le nombre de ligne entre le champs "ACTIONS" et le champs "LIBRE".

Cette formule devra me permettre également de calculer le poid moyen médian, min et max.

Comment faire cette action en VBA si Possible?.

JE vous remercie pour votre aide.

Miky
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Bonjour,

un tout petit fichier, avec modèle de donnée traité et résultat attendu, déposé sur le forum, serait peut être plus facile....

bonne journée
@+
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Bonjour miky

Si on a aucune idée de l'endroit dans la feuille où se trouvent les mots "ACTIONS" et "LIBRE", il va être difficile de te donner une réponse claire
Peut-être avec Application.Match...

Edit : Bonjour Pierrot 😉
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re, bonjour Toto, JNP

une solution vba :
Code:
Option Explicit
Sub test()
Dim x As Range, y As Range
Set x = Range("A:A").Find("ACTIONS", , xlValues, xlWhole, , , False)
If x Is Nothing Then Exit Sub
Set y = Range("A:A").Find("LIBRE", , xlValues, xlWhole, , , False)
If y Is Nothing Then Exit Sub
MsgBox "Nb de ligne :  " & (y.Row - x.Row) - 1
MsgBox "Moyenne : " & WorksheetFunction.Average(Range("B" & x.Row & ":B" & y.Row))
MsgBox "Maxi : " & WorksheetFunction.Max(Range("B" & x.Row & ":B" & y.Row))
MsgBox "Mini : " & WorksheetFunction.Min(Range("B" & x.Row & ":B" & y.Row))
End Sub

bon après midi
@+
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.


Bonjour à tous merci pour votre aide,

J'ai un peu mal agencé mon exemple, car il me faut aussi récupérer les valeurs entre "ACTIONS" et "LIBRE", car "ACTIONS" comprend une valeur à ne pas prendre en compte et LIBRE également. J'aime beaucoup ta macro Pierrot.

Pourrais tu m'indiquer comment dois je faire? J'espère avoir été plus clair dans la deuxième partie de mon problème.

A+
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re,

modifie comme suit, si j'ai bien compris, pas sûr...
Code:
Option Explicit
Sub test()
Dim x As Range, y As Range
Set x = Range("A:A").Find("ACTIONS", , xlValues, xlWhole, , , False)
If x Is Nothing Then Exit Sub
Set y = Range("A:A").Find("LIBRE", , xlValues, xlWhole, , , False)
If y Is Nothing Then Exit Sub
MsgBox "Nb de ligne :  " & (y.Row - x.Row) - 1
MsgBox "Moyenne : " & WorksheetFunction.Average(Range("B" & x.Row + 1 & ":B" & y.Row - 1))
MsgBox "Maxi : " & WorksheetFunction.Max(Range("B" & x.Row + 1 & ":B" & y.Row - 1))
MsgBox "Mini : " & WorksheetFunction.Min(Range("B" & x.Row + 1 & ":B" & y.Row - 1))
End Sub
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re Pierrot93,
Elle est super top ta macro VBA, mais j'ai une toute dernière question,
Code:
Set x = Range("A:A").Find("ACTIONS", , xlValues, xlWhole, , , False)
If x Is Nothing Then Exit Sub
Set y = Range("A:A").Find("LIBRE", , xlValues, xlWhole, , , False)
If y Is Nothing Then Exit Sub

Je voudrai définir une feuille à parcourir pour la fonction FIND()
J'ai essayé Find(Feuil2!"ACTIONS", , xlValues, xlWhole, , , False)

Mais cela m'a donné une erreur, aurai tu la solution ?

Merci beaucoup pour ton aide,

A+
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re,

pour effectuer la recherche sur la colonne A de la feuille nommée "NomFeuille" :
Code:
Set x = Sheets("NomFeuille").Range("A:A").Find("ACTIONS", , xlValues, xlWhole, , , False)
If x Is Nothing Then Exit Sub
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.


Re, Tout cela fonctionne superbement bien, étant débutant dans le VBA, je me permet de te poser une dernière question si cela ne te dérange pas. Tu as mis des MsgBox ce qui sont très interessant, mais je n'arive pas à à rentrer ces valeurs dans une cellule.

Tel que Range("A1") = à la moyenne par exemple,

J'ai une erreur de méthode et de compréhension, pourrais tu m'éclairer?

et encore Merci pour tout.

A+
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re,

A partir de la feuille 1 j'excute la macro de ma feuil2, je reçois l'erreur suivante :

Erreur 1004
"Impossible de lire la propriété Average de la Classe WorksheetFunction"

Si j'execute ma macro à partir de la feuil2 cela passe sans problème, Pourquoi et comment pallier à ce problème.

Merci pour ton aide,

A+

Miky
 
Re : Sélectionner une plage de donnée entre 2 champs Textes.

Re,

préciser le nom de la feuille quand ce n'est pas la feuille active ...
Code:
Sheets("NomFeuille1").Range("A1").Value  = WorksheetFunction.Average(Sheets("NomFeuille2").Range("B" & x.Row + 1 & ":B" & y.Row - 1))
 
- 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

Discussions similaires

Réponses
4
Affichages
962
L
Réponses
4
Affichages
654
Léraud Florian
L
Réponses
12
Affichages
1 K
P
Réponses
7
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…