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

Recherche complexe + édition

4 réponses
Avatar
Michel69
Bonjour à toutes et à tous
Excel 2003 : J'ai une feuille BDD comportant 26 col (A-Z) et 1500 lignes.
En col C le nom de l'agent, En Col E, j'ai des matricules agents (plusieurs
occurences du même mat.) et des infos sur le reste des lignes.
Je souhaiterais via une input box, en saisissant un mat créer une feuille
(onglet Mat) sur laquelle se trouverait le mat , le Nom de l'agent et le
contenu des lignes correspondantes.
Je tourne en rond depuis longtemps mais n'y arrive pas
Merci beaucoup pour votre aid
A---------B---------C-----------D-------------E-----------F-----------------------------Z
n° Année Nom Cat Mat Congés _pris
1 2008 Pierre A 123456
14 14
2 2008 Alain B 789101 12
12
--
50 2008 Pierre A 123456 5
5

Résultat escompté :
123456 Pierre A
14
5
Cordialement
Michel

4 réponses

Avatar
Papyjac
Bonjour Michel69,

Dans un 1er temps on peut se passer de l'input box

Tu crées un modèle de fiche dans laquelle on saisira le matricule
Puis toutes les autres données de la fiche seront obtenue à l'aide de la
formule RECHERCHEV

Toutefois, il eut été préférable que le matricule soit dans la colonne A,
car RECHERCHEV permet d'obtenir sans mal toutes les colonnes à droite du
matricule

Pour obtenir celles de gauche, il faut utiliser EQUIV imbriqué dans INDEX



--
Papyjac


"Michel69" a écrit :

Bonjour à toutes et à tous
Excel 2003 : J'ai une feuille BDD comportant 26 col (A-Z) et 1500 lignes.
En col C le nom de l'agent, En Col E, j'ai des matricules agents (plusieurs
occurences du même mat.) et des infos sur le reste des lignes.
Je souhaiterais via une input box, en saisissant un mat créer une feuille
(onglet Mat) sur laquelle se trouverait le mat , le Nom de l'agent et le
contenu des lignes correspondantes.
Je tourne en rond depuis longtemps mais n'y arrive pas
Merci beaucoup pour votre aide
A---------B---------C-----------D-------------E-----------F-----------------------------Z
n° Année Nom Cat Mat Congés _pris
1 2008 Pierre A 123456
14 14
2 2008 Alain B 789101 12
12
--
50 2008 Pierre A 123456 5
5

Résultat escompté :
123456 Pierre A
14
5
Cordialement
Michel


Avatar
FFO
Salut Michel

Soit la Feuil1 à traiter
Je te propose ce code :

Référence = InputBox("Saisisez la Référence", "Référence")
On Error Resume Next
Ligne = Sheets("Feuil1").Range("E1", "E" &
Sheets("Feuil1").Range("E65535").End(xlUp).Row).Find(What:=Référence,
After:=Sheets("Feuil1").Range("E1"), LookIn:=xlValues, _
LookAt:=xlWhole).Row
If Ligne <> "" Then
Sheets("Feuil1").Range("A1").EntireRow.Copy Sheets.Add.Range("A1")
ActiveSheet.Name = Référence
Sheets("Feuil1").Range("A" & Ligne).EntireRow.Copy
Sheets(Référence).Range("A65535").End(xlUp).Offset(1, 0)
Lignesuivante = Ligne
For i = 1 To Sheets("Feuil1").Range("E65535").End(xlUp).Row
Lignesuivante = Sheets("Feuil1").Range("E1", "E" &
Sheets("Feuil1").Range("E65535").End(xlUp).Row).FindNext(After:=Range("E" &
Lignesuivante)).Row
If Lignesuivante > Ligne Then
Sheets("Feuil1").Range("A" & Ligne).EntireRow.Copy
Sheets(Référence).Range("A65535").End(xlUp).Offset(1, 0)
Else
Exit For
End If
i = i + 1
Next
End If

Celà devrait convenir
Dis moi !!!
Avatar
Michel69
Bonjour FFO et Papyjac,
Comment définir i, référence, ligne, et ou dois-je mettre ce code ?
J'ai remplacé Feuil1 par BDD mais j'ai 2 lignes en rouge (erreur de syntaxe
?) :
Sheets("bdd").Range("A65535").End(xlUp).Offset(1, 0) Lignesuivante = Ligne
Sheets("Référence").Range("A65535").End(xlUp).Offset(1, 0)
Cordialement
Michel

"FFO" a écrit :

Salut Michel

Soit la Feuil1 à traiter
Je te propose ce code :

Référence = InputBox("Saisisez la Référence", "Référence")
On Error Resume Next
Ligne = Sheets("Feuil1").Range("E1", "E" &
Sheets("Feuil1").Range("E65535").End(xlUp).Row).Find(What:=Référence,
After:=Sheets("Feuil1").Range("E1"), LookIn:=xlValues, _
LookAt:=xlWhole).Row
If Ligne <> "" Then
Sheets("Feuil1").Range("A1").EntireRow.Copy Sheets.Add.Range("A1")
ActiveSheet.Name = Référence
Sheets("Feuil1").Range("A" & Ligne).EntireRow.Copy
Sheets(Référence).Range("A65535").End(xlUp).Offset(1, 0)
Lignesuivante = Ligne
For i = 1 To Sheets("Feuil1").Range("E65535").End(xlUp).Row
Lignesuivante = Sheets("Feuil1").Range("E1", "E" &
Sheets("Feuil1").Range("E65535").End(xlUp).Row).FindNext(After:=Range("E" &
Lignesuivante)).Row
If Lignesuivante > Ligne Then
Sheets("Feuil1").Range("A" & Ligne).EntireRow.Copy
Sheets(Référence).Range("A65535").End(xlUp).Offset(1, 0)
Else
Exit For
End If
i = i + 1
Next
End If

Celà devrait convenir
Dis moi !!!



Avatar
FFO
Rebonjour Michel
Je ne vois pas trop où se trouvent ces lignes dans mon code
Je t'ai joint sur ce lien un exemple
La macro "Traitement" est activé par le bouton Onglet "bdd"

Fais des essais et dis moi !!!

http://www.cijoint.fr/cjlink.php?file=cj200812/cijY3SaWu8.xls