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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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 !!!
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
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 !!!
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 !!!
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
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 !!!
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"
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"
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"