Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Atteindre un matricule dans un grand tableau.

7 réponses
Avatar
Sully
Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié, avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que j'aurais
au préalable saisie.



Merci par avance à vous tous



Sully.

7 réponses

Avatar
LSteph
Bonjour,

sans macro
Edition Rechercher : 300300
Dans: Classeur

Cordialement.

--
lSteph

On 7 oct, 17:09, "Sully" wrote:
Bonjour,

Je souhaiterais avoir un peu d'aide.

J'ai un classeur avec plusieurs onglets (une centaine) .

Dans une des feuilles,  j'ai un tableau avec 300 matricules de salari é, avec
nom prénom qui est la synthèse des autres feuilles.

Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricu le
ou atteindre un matricule,  soit par macro soit directement.

Ex en  C1 j'ai le  matricule = 300300  (sur six caractères).

Je voudrais en lançant la recherche, ou la macro on m'emmène dans la feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur  le matricule
concerné   et je verrai  les différentes données qui sont sur l a même ligne
pour ce matricule.

J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher  tel matricule,  le problème que c 'est la
macro conserve le matricule chercher qui à été saisi, je voudrais p ouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela pe ut
être 300300 et plus tard 300480, ou faire référence à une cellule que j'aurais
au préalable saisie.

Merci par avance à vous tous

Sully.


Avatar
Daniel.C
Bonjour.
Utilise la fonction RECHERCHEV
Cordialement.
Daniel

Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié, avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule ou
atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que
j'aurais au préalable saisie.



Merci par avance à vous tous



Sully.


Avatar
Sully
Merci à LSteph et à Daniel.
La réponse de Daniel, renvoi à une réponse immédiate dans la cellule. c'est
pas ce que je veux.

La réponse de LSteph est plus approprié, elle nous même vers le matricule
recherché.

Ce que je n'ai pas dis dans ma demande. Ce même matricule peut se retrouver
dans plusieurs feuille.
Je voudrais arrivé rapidement au Matricule 300300 qui se trouve dans la
feuille "Matricule" car c'est là que j'ai ma synthèse.

Merci pour vos réponse et précisions.
Sully
"LSteph" a écrit dans le message de news:

Bonjour,

sans macro
Edition Rechercher : 300300
Dans: Classeur

Cordialement.

--
lSteph

On 7 oct, 17:09, "Sully" wrote:
Bonjour,

Je souhaiterais avoir un peu d'aide.

J'ai un classeur avec plusieurs onglets (une centaine) .

Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié,
avec
nom prénom qui est la synthèse des autres feuilles.

Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.

Ex en C1 j'ai le matricule = 300300 (sur six caractères).

Je voudrais en lançant la recherche, ou la macro on m'emmène dans la
feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même ligne
pour ce matricule.

J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que
j'aurais
au préalable saisie.

Merci par avance à vous tous

Sully.


Avatar
michdenis
Bonjour Sully,

Il y a ceci :

Tu mets ceci dans un module standard :

Il se peut qu'il y ait des lignes qui soient coupées par le
service de messagerie !

Si la procédure ne trouve pas, tu reviens à la feuille et la
cellule de départ.

'-------------------------------------------
Sub FindItAll()
Dim oSheet As Object, NextCell As Range
Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
For Each oSheet In ActiveWorkbook.Worksheets
oSheet.Activate
oSheet.[a1].Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set NextCell = Nothing
Set Firstcell = Nothing
Next oSheet
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------------




"Sully" a écrit dans le message de groupe de discussion :
#
Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié, avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que j'aurais
au préalable saisie.



Merci par avance à vous tous



Sully.
Avatar
Sully
Bonsoir à Michdenis.
Ce que vous m'avez proposé est presque parfait et je vous en remercie
d'emblée.

Votre macro permet de rechercher tout ce qu'on veut c'est très bien.
Seule amélioraton que je souhaiterais si possible. Comme je l'ai dis par la
suite l'information recherché peut se trouver dans plusieurs feuilles.
moi je cherche l'info qui se trouve dans la feuille Nommé "
ListeSalarié" qui n'est pas le premier onglet.

La macro que tu m'a proposé, il cherche l'information en commencant par le
premier onglet, s'il trouve la correspondance il s'arrête. Une info du même
type est dans l'onglet 1 , mais c'est lui que je recherhe.
Pour résoudre le problème (dans l'immédiat) j'ai mis ma "liste salarié en
premier Onglet", dans l'immédiat je suis satisfait.
J'aurai souhaité conservé mon onglet là ou il est " je souhaiterais que le
recherche se fait en commencant par l'onglet "ListeSalarié" qui peut être
n'importe ou dans la feuille.
Mais rassure toi que tu as fait est dèjà très bien.
Merci encore et bonne soirée.
Sully

"michdenis" a écrit dans le message de news:

Bonjour Sully,

Il y a ceci :

Tu mets ceci dans un module standard :

Il se peut qu'il y ait des lignes qui soient coupées par le
service de messagerie !

Si la procédure ne trouve pas, tu reviens à la feuille et la
cellule de départ.

'-------------------------------------------
Sub FindItAll()
Dim oSheet As Object, NextCell As Range
Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
For Each oSheet In ActiveWorkbook.Worksheets
oSheet.Activate
oSheet.[a1].Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set NextCell = Nothing
Set Firstcell = Nothing
Next oSheet
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------------




"Sully" a écrit dans le message de groupe de
discussion :
#
Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié,
avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la
feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même
ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que
j'aurais
au préalable saisie.



Merci par avance à vous tous



Sully.



Avatar
michdenis
Essaie ceci :

'-------------------------------------
Sub FindItAll()

Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
with ActiveWorkbook.Worksheets("ListeSalarié")
.Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set Firstcell = Nothing
End With
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------



"Sully" a écrit dans le message de groupe de discussion :

Bonsoir à Michdenis.
Ce que vous m'avez proposé est presque parfait et je vous en remercie
d'emblée.

Votre macro permet de rechercher tout ce qu'on veut c'est très bien.
Seule amélioraton que je souhaiterais si possible. Comme je l'ai dis par la
suite l'information recherché peut se trouver dans plusieurs feuilles.
moi je cherche l'info qui se trouve dans la feuille Nommé "
ListeSalarié" qui n'est pas le premier onglet.

La macro que tu m'a proposé, il cherche l'information en commencant par le
premier onglet, s'il trouve la correspondance il s'arrête. Une info du même
type est dans l'onglet 1 , mais c'est lui que je recherhe.
Pour résoudre le problème (dans l'immédiat) j'ai mis ma "liste salarié en
premier Onglet", dans l'immédiat je suis satisfait.
J'aurai souhaité conservé mon onglet là ou il est " je souhaiterais que le
recherche se fait en commencant par l'onglet "ListeSalarié" qui peut être
n'importe ou dans la feuille.
Mais rassure toi que tu as fait est dèjà très bien.
Merci encore et bonne soirée.
Sully

"michdenis" a écrit dans le message de news:

Bonjour Sully,

Il y a ceci :

Tu mets ceci dans un module standard :

Il se peut qu'il y ait des lignes qui soient coupées par le
service de messagerie !

Si la procédure ne trouve pas, tu reviens à la feuille et la
cellule de départ.

'-------------------------------------------
Sub FindItAll()
Dim oSheet As Object, NextCell As Range
Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
For Each oSheet In ActiveWorkbook.Worksheets
oSheet.Activate
oSheet.[a1].Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set NextCell = Nothing
Set Firstcell = Nothing
Next oSheet
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------------




"Sully" a écrit dans le message de groupe de
discussion :
#
Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié,
avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la
feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le matricule
concerné et je verrai les différentes données qui sont sur la même
ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que
j'aurais
au préalable saisie.



Merci par avance à vous tous



Sully.



Avatar
Sully
Bonjour MichDenis, et merci infiniment.

Cela correspond très bien à ma demande et cà fonctionnement parfaitement.
Bonne journée.
"michdenis" a écrit dans le message de news:

Essaie ceci :

'-------------------------------------
Sub FindItAll()

Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
with ActiveWorkbook.Worksheets("ListeSalarié")
.Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set Firstcell = Nothing
End With
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------



"Sully" a écrit dans le message de groupe de
discussion :

Bonsoir à Michdenis.
Ce que vous m'avez proposé est presque parfait et je vous en remercie
d'emblée.

Votre macro permet de rechercher tout ce qu'on veut c'est très bien.
Seule amélioraton que je souhaiterais si possible. Comme je l'ai dis par
la
suite l'information recherché peut se trouver dans plusieurs feuilles.
moi je cherche l'info qui se trouve dans la feuille Nommé "
ListeSalarié" qui n'est pas le premier onglet.

La macro que tu m'a proposé, il cherche l'information en commencant par le
premier onglet, s'il trouve la correspondance il s'arrête. Une info du
même
type est dans l'onglet 1 , mais c'est lui que je recherhe.
Pour résoudre le problème (dans l'immédiat) j'ai mis ma "liste salarié en
premier Onglet", dans l'immédiat je suis satisfait.
J'aurai souhaité conservé mon onglet là ou il est " je souhaiterais que le
recherche se fait en commencant par l'onglet "ListeSalarié" qui peut être
n'importe ou dans la feuille.
Mais rassure toi que tu as fait est dèjà très bien.
Merci encore et bonne soirée.
Sully

"michdenis" a écrit dans le message de news:

Bonjour Sully,

Il y a ceci :

Tu mets ceci dans un module standard :

Il se peut qu'il y ait des lignes qui soient coupées par le
service de messagerie !

Si la procédure ne trouve pas, tu reviens à la feuille et la
cellule de départ.

'-------------------------------------------
Sub FindItAll()
Dim oSheet As Object, NextCell As Range
Dim Firstcell As Range, WhatToFind As Variant
Dim StartSheet As Object, StartRange As Object

Set StartSheet = ActiveSheet
Set StartRange = Selection

WhatToFind = Application.InputBox("Quel texte cherchez-vous " & _
"dans toutes les feuilles ?", "Cherche", , 300, 300, , , 2)
If Format(WhatToFind) = False Then Exit Sub
If IsNumeric(WhatToFind) Then WhatToFind = CDbl(WhatToFind)

If WhatToFind <> "" And Not WhatToFind = False Then
For Each oSheet In ActiveWorkbook.Worksheets
oSheet.Activate
oSheet.[a1].Activate
Set Firstcell = Cells.Find(What:=WhatToFind, _
LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:úlse)
If Not Firstcell Is Nothing Then
Firstcell.Select
Exit Sub
End If
Set NextCell = Nothing
Set Firstcell = Nothing
Next oSheet
End If
On Error Resume Next
StartSheet.Activate
StartRange.Select
End Sub
'-------------------------------------------




"Sully" a écrit dans le message de groupe de
discussion :
#
Bonjour,



Je souhaiterais avoir un peu d'aide.



J'ai un classeur avec plusieurs onglets (une centaine) .



Dans une des feuilles, j'ai un tableau avec 300 matricules de salarié,
avec
nom prénom qui est la synthèse des autres feuilles.



Je voudrais à partir d'une autre feuille, pouvoir rechercher un matricule
ou atteindre un matricule, soit par macro soit directement.



Ex en C1 j'ai le matricule = 300300 (sur six caractères).



Je voudrais en lançant la recherche, ou la macro on m'emmène dans la
feuille
nommé « Matricules » ou se trouve le tableau, et surtout sur le
matricule
concerné et je verrai les différentes données qui sont sur la même
ligne
pour ce matricule.



J'ai fait une macro simple, avec Atteindre la Zone que j'ai nommé
"ListeSalarié" puis rechercher tel matricule, le problème que c'est la
macro conserve le matricule chercher qui à été saisi, je voudrais pouvoir
changer le matricule (ou fixer le matricule à chaque lancement) cela peut
être 300300 et plus tard 300480, ou faire référence à une cellule que
j'aurais
au préalable saisie.



Merci par avance à vous tous



Sully.