Définition d'une plage de cellule avec XlUp et utilisation de Match

  • Initiateur de la discussion Initiateur de la discussion Tibo2
  • 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 !

Tibo2

XLDnaute Nouveau
Bonjour,

J'ai eu une longue bataille avec excel afin de pouvoir utiliser la fonction Match sur une plage de cellule. J'ai finalement réussi à résoudre mon problème mais je ne comprends pas pourquoi il y en avait un. Si qqn pourrait m'expliquer ce serait parfait. Le problème repose sur la définition de ma plage, j'avais trouvé sur un forum la mnière pratique de définir de la manière suivante: Range([A1], [A100].End(xlUp)) mais il semblerait qu'il y ait un problème. De plus Worksheets("ScenarioRecharge").Activate ne fonctionnement pas. je suis obligé de specifier Worksheets("ScenarioRecharge").Range("A7:A" & [A65000].End(xlUp).Row), pourquoi?

Merci d'avance à la personne qui prendra le temps de m'éclairer sur ça.

Bonne journée

Mon code initial était le suivant et ne marchait pas à cause de la définition de PlageRecherche:

Public Function Scenario(NL As Byte)
Dim ScenarioSelectionne As Variant
Dim PlageRecherche As Range
Dim NL_Scenario As Double
ScenarioSelectionne = Worksheets("ProfilCharge").Cells(NL + 8, 3)
Worksheets("ScenarioRecharge").Activate
Set PlageRecherche = Range([A1], [A100].End(xlUp))
NL_Scenario = Application.WorksheetFunction.Match(ScenarioSelectionne, PlageRecherche, 0)
Scenario = NL_Scenario
End Function

J'ai finalement modifie en :

Public Function Scenario(NL As Byte)
Dim ScenarioSelectionne As Variant
Dim PlageRecherche As Range
Dim NL_Scenario As Double
ScenarioSelectionne = Worksheets("ProfilCharge").Cells(NL + 8, 3)
Set PlageRecherche = Worksheets("ScenarioRecharge").Range("A7:A" & [A65000].End(xlUp).Row)
NL_Scenario = Application.WorksheetFunction.Match(ScenarioSelectionne, PlageRecherche, 0)
Scenario = NL_Scenario
End Function
 
Re : Définition d'une plage de cellule avec XlUp et utilisation de Match

Bonjour Tibo2,

comme ça je dirais que c'est parce que ta première version sélectionne un feuille
Une fonction n'interagit pas avec les objets, pour interagir il faut faire une Sub

Essaye comme ça pour voir

Code:
Public Function Scenario(NL As Byte)
Dim ScenarioSelectionne As Variant
Dim PlageRecherche As Range
Dim NL_Scenario As Double
ScenarioSelectionne = Worksheets("ProfilCharge").Cells(NL + 8, 3)
Set PlageRecherche = Worksheets("ScenarioRecharge").Range([A1], [A100].End(xlUp))
NL_Scenario = Application.WorksheetFunction.Match(ScenarioSelectionne, PlageRecherche, 0)
Scenario = NL_Scenario
End Function
 
Re : Définition d'une plage de cellule avec XlUp et utilisation de Match

Merci pour ta réponse.

Ca ne marche pas. Le bug réside dans : Set PlageRecherche = Worksheets("ScenarioRecharge").Range([A1], [A100].End(xlUp))
Mais je ne vois vraiment pas pourquoi, je pense que je dois mal utiliser End(xlUp)...
 
Re : Définition d'une plage de cellule avec XlUp et utilisation de Match

Parfait c'était bien ça.
Je pensais que comme c'était dans la même ligne il n'y avait pas de problème. Une chose de plus d'appris!
Merci

PS: je dois cliquer sur qqch pour dire résolu?
 
- 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
3
Affichages
586
Réponses
3
Affichages
505
Retour