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

Rechercher sur 2 pages différentes eds données

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

J

juliarca

Guest
Bonjour,

Je viens d'arriver sur ce forum et je dois avouer que je compte beaucoup sur vous.

Je suis chargé, dans le cadre d'un stage professionnel, de réaliser un fichier dans le secteur financier avec 3 pages.

La 1ère page propose à l'utilisateur de sélectionner le pays émetteur de l'action. Pour cela on obtient le renseignement grâce au code ISIN. Ce code ISIN est composé de 12 caractères (2 lettres et 10 chiffres). Ce sont ces deux premières lettre qui nous permettent de renseigner sur le pays.

La 2nde page contient un certain nombre d'actions en ligne avec quelques informations en colonnes.

La 3ème page me sert de "Source" pour la combo-box de la première page.

Le but est que lorsque l'utilisateur choisit un pays particulier (grâce à la combo-box), on retrouve dans la seconde feuille toutes les actions dont le code ISIN commence par ces deux lettres.

Malheureusement, je ne vois pas comment faire pour sélectionner ces deux premières lettres du code.

J'espère avoir été assez clair et si non, ne manquez pas de me le signaler.

Merci à vous.
 
Re : Rechercher sur 2 pages différentes eds données

Bonjour,

Pas de réponses??

Dois-je être un peu plus clair?

J'attends vraiment une réponse qui pourrait débloquer ma situation.

Merci à vous.
 
Re : Rechercher sur 2 pages différentes eds données

Bonjour,

Je suis sur mon lieu de travail et je suis donc restreint concernant l'envoi de fichier.

Sub Choix()
Dim MaFeuille As Worksheet, MaFeuille2 As Worksheet, MaFeuille3 As Worksheet
Set MaFeuille = ThisWorkbook.Worksheets("Intro")
Set MaFeuille2 = ThisWorkbook.Worksheets("Data")
Set MaFeuille3 = ThisWorkbook.Worksheets("Database")

MaFeuille2.Select

For i = 1 To 1000
If Cells(i, 6).Value = MaFeuille3.Range("B3").Value Then
Rows("i:i").Keep
Else
Rows(i, i).Select
Selection.Delete Shift:=xlUp

End If
Next i
End Sub

Voilà le début de macro réalisé.

Je dois avouer que pour le moment je tatonne, donc vous risquez de voir quelques incohérences.

Bref, l'objectif de cette macro est que lorsqu'on sélectionne sur la première page le pays émetteur, par exemple "France", le fichier aille recherche l'identifiant du code ISIN correspondant (Dans notre cas "FR") dans la feuille 3.

Ensuite il sélectionne dans la page 2, toutes les actions dont le code ISIN commence par FR et fait disparaitre les autres.

En espérant avoir été plus clair.

Cordialement.
 
Re : Rechercher sur 2 pages différentes eds données

Sub Choix()
Dim MaFeuille As Worksheet, MaFeuille2 As Worksheet, MaFeuille3 As Worksheet
Set MaFeuille = ThisWorkbook.Worksheets("Intro")
Set MaFeuille2 = ThisWorkbook.Worksheets("Data")
Set MaFeuille3 = ThisWorkbook.Worksheets("Database")
MaFeuille2.Select
With MaFeuille2
For i = 2 To 1000
If Left(D2, 2).Value = MaFeuille.Shapes("cmbPays").Value Then
.Rows("i:i").Select
Selection.EntireRow.Hidden = False
Else
.Rows("i:i").Select
Selection.EntireRow.Hidden = True
End If
Next i
End With
End Sub


Je vous renvoi une version légèrement modifié, mais qui ne me permet toujours pas d'avancer.
J'ai du modifier les "i" dans la formule pour tester, mais malgré cela, ça ne fonctionne pas.

"cmbPays" correspond à la comboBox de la 1ère feuille.

S'il vous plait, je compte sur vous.
 
Re : Rechercher sur 2 pages différentes eds données

Julia du code avec quelques commentaires

Sub Choix()
Dim MaFeuille As Worksheet, MaFeuille2 As Worksheet, MaFeuille3 As Worksheet
Set MaFeuille = ThisWorkbook.Worksheets("Intro")
Set MaFeuille2 = ThisWorkbook.Worksheets("Data")
Set MaFeuille3 = ThisWorkbook.Worksheets("Database")

with MaFeuille3
derl=.range("A65536").end(xlup).row
For i = 1 To derl
'tu adaptes la colonne(pour pays)
If .Cells(i, "B").Value = MaFeuille.Shapes("cmbPays").Value Then
identifiant=left(.Cells(i, "F").Value,2) 'tu adaptes la colonne(pour identifiant)
exit for
endif
next
end with
'içi tu en dis un peu plus et on peut appliquer un filtre
With MaFeuille2
derl=.range("D65536").end(xlup).row
For i = 2 To derl
If Left(.range("D" & l), 2).Value =identifiant Then
.Rows(i).EntireRow.Hidden = true
Else
.Rows(i).EntireRow.Hidden = false
End If
Next i
End With

End Sub
à bientôt
 
Re : Rechercher sur 2 pages différentes eds données

Merci pour ton aide, je comprends le fonctionnement,

Toutefois, il m'affiche encore une erreur à la ligne:

"If .Cells(i,"A").Value=MaFeuille.Shapes("cmbPays").Value then"

le message d'erreur est:
"Run-time error '438':

Object doesn't support this property or method"

Je pense que c'est la combo-box qui pose problème.

Je vais essayer sans combo-box pour vérifier cette hypothèse.
 
Re : Rechercher sur 2 pages différentes eds données

Je viens d'essayer avec une cellule à la place de la combo-box et ça fonctionne, donc le 1er souci vient bien de là.

Je dis "1er" car il me trouve une seconde erreur à la ligne:

"If Left(.Range("D" & i), 2).Value=identifiant then"

Quelqu'un a une idée?
 
Re : Rechercher sur 2 pages différentes eds données

Julia essaye MaFeuille.cmbPays.Value
pour la 2ème erreur ,quelle erreur
i,derl,identifiant ont ils une valeur
si il y a des cellules vides dans D
If .Range("D" & i)<>"" and Left(.Range("D" & i), 2).Value=identifiant then
 
- 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

Réponses
2
Affichages
995
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…