Excel: copie de colonne & recherche partielle
Résolu
storm
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de travailler sur un outils excel qui permet d'afficher des informations sur des machines en fonction de leur type.
J'ai donc une feuille dédiée a l'affichage des informations et une page dédiée a la base de donnée.
J'ai déja réussi à afficher les informations souhaitée par machine mais en notant les colonnes spécifiques à chaque type de machine dans le VBA
Mon probleme est que je souaiterais que cet outil soit evolutif pour les utilisateurs, à savoir leur permettre d'ajouter ou de supprimer des machines de la base de donnée et que l'affichage du tableau tienne compte du nouveau nombre de machines par type sans avoir à modifier le VBA.
les machines sont référencées par code du style ("typedemachine""responsable""lieu""numéro")
Je suis donc à la recherche d'un code permettant de rechercher dans la feuille base de donnée sur une ligne le type de machine en lisant la premiere partie de son identifiant et de copier dans la feuille affichage les colonnes qui y sont associées.
J'ai déja trouvé quelques formules assez proches de mon probleme, mais aucune qui ne reponde a problematique que je rencontre
D'avance merci si vous pouvez m'aider à résoudre cette interrogation (sans doute tres benigne).
Je suis en train de travailler sur un outils excel qui permet d'afficher des informations sur des machines en fonction de leur type.
J'ai donc une feuille dédiée a l'affichage des informations et une page dédiée a la base de donnée.
J'ai déja réussi à afficher les informations souhaitée par machine mais en notant les colonnes spécifiques à chaque type de machine dans le VBA
Mon probleme est que je souaiterais que cet outil soit evolutif pour les utilisateurs, à savoir leur permettre d'ajouter ou de supprimer des machines de la base de donnée et que l'affichage du tableau tienne compte du nouveau nombre de machines par type sans avoir à modifier le VBA.
les machines sont référencées par code du style ("typedemachine""responsable""lieu""numéro")
Je suis donc à la recherche d'un code permettant de rechercher dans la feuille base de donnée sur une ligne le type de machine en lisant la premiere partie de son identifiant et de copier dans la feuille affichage les colonnes qui y sont associées.
J'ai déja trouvé quelques formules assez proches de mon probleme, mais aucune qui ne reponde a problematique que je rencontre
D'avance merci si vous pouvez m'aider à résoudre cette interrogation (sans doute tres benigne).
A voir également:
- Excel: copie de colonne & recherche partielle
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
6 réponses
Bonjour,
difficile de comprendre ce que tu veux en fonction de quoi...
met un extrait de ton classeur sur
https://www.cjoint.com/
et colles le lien proposé dans ta réponse
dans l'attente
difficile de comprendre ce que tu veux en fonction de quoi...
met un extrait de ton classeur sur
https://www.cjoint.com/
et colles le lien proposé dans ta réponse
dans l'attente
Bonjour,
Je recherche juste une fonction qui me permette de chercher une expression particuliere (une suite de lettre) au debut d'un mot sur une ligne precise et qui me permette de recopier le contenu des colonnes où cette expression a été trouvée.
mon classeur contient beaucoup d'elements superflus par rapport à cette requete, j'essaye d'en creer un qui ne comporte que ce qui concerne ma question.
Je recherche juste une fonction qui me permette de chercher une expression particuliere (une suite de lettre) au debut d'un mot sur une ligne precise et qui me permette de recopier le contenu des colonnes où cette expression a été trouvée.
mon classeur contient beaucoup d'elements superflus par rapport à cette requete, j'essaye d'en creer un qui ne comporte que ce qui concerne ma question.
Voici une version tres simplifiée de mon classeur: https://www.cjoint.com/?jdoQfUY8Rj
Sur la Feuil1 se trouve le tableau d'affichage et sur la Feuil2 se trouve la base de donnée.
j'utilise des boutons pour permettre à l'utilisateur de choisir sur quelle type de machine il souhaite des informations.
Par exemple si l'utilisateur veut des informations sur les machines "Hsp", en cliquant sur le bouton Hsp, le classeur affiche les 2 machines
de meme pour Tak, les 3 machines., etc ...
Mon probleme est que je souhaiterais avoir la possibilité de rajouter des machines, par exemple une HspTerHtl001
comment faire pour que mon programme affiche cette nouvelle machine (donc 3 Hsp en tout) sans toucher le VBA ?
en gros comment faire pour que le classeur cherche toutes les machines commençants par "Hsp" sur la ligne 1 de la Feuil2 pour les recopier sur la Feuil1.
Sur la Feuil1 se trouve le tableau d'affichage et sur la Feuil2 se trouve la base de donnée.
j'utilise des boutons pour permettre à l'utilisateur de choisir sur quelle type de machine il souhaite des informations.
Par exemple si l'utilisateur veut des informations sur les machines "Hsp", en cliquant sur le bouton Hsp, le classeur affiche les 2 machines
de meme pour Tak, les 3 machines., etc ...
Mon probleme est que je souhaiterais avoir la possibilité de rajouter des machines, par exemple une HspTerHtl001
comment faire pour que mon programme affiche cette nouvelle machine (donc 3 Hsp en tout) sans toucher le VBA ?
en gros comment faire pour que le classeur cherche toutes les machines commençants par "Hsp" sur la ligne 1 de la Feuil2 pour les recopier sur la Feuil1.
Re,
ci dessous macros proposées
la macro "extraire" est paramétrée pour être commune au 3 boutons
tu peux ainsi ajouter une machine à la suite dans feuille2 sans toucher aux codes
si tu as un nouveau type mettons "ZER"
il suffit de dessiner un bouton
et la nouvelle macro_bouton demandera:
sub bouton_zer()
extraire "ZER"
end sub
Ci joint demo avec nouvelles bécanes hsp et Tak
https://www.cjoint.com/?jds2VgJ7Rr
ci dessous macros proposées
la macro "extraire" est paramétrée pour être commune au 3 boutons
Sub extraire(type_machine) Dim der_col As Byte, nbre As Byte, col As Byte Dim tablo Application.ScreenUpdating = False Sheets(1).Range("B1:Z9").ClearContents With Sheets(2) 'initialisation der_col = .Range("IV1").End(xlToLeft).Column nbre = Application.CountIf(.Range(.Cells(1, 2), .Cells(1, der_col)), type_machine & "*") col = 1 For cptr = 1 To nbre col = .Rows(1).Find(type_machine, .Cells(1, col), , xlPart).Column tablo = .Range(.Cells(1, col), .Cells(9, col)).Value With Sheets(1) Sheets(1).Range(.Cells(1, cptr + 1), .Cells(9, cptr + 1)).Value = tablo End With tablo = "" Next End With Application.ScreenUpdating = True End Sub Sub bouton_hsp() extraire "Hsp" End Sub Sub bouton_tak() extraire "tak" End Sub Sub bouton_Isi() extraire "Isi" End Sub
tu peux ainsi ajouter une machine à la suite dans feuille2 sans toucher aux codes
si tu as un nouveau type mettons "ZER"
il suffit de dessiner un bouton
et la nouvelle macro_bouton demandera:
sub bouton_zer()
extraire "ZER"
end sub
Ci joint demo avec nouvelles bécanes hsp et Tak
https://www.cjoint.com/?jds2VgJ7Rr
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
:O
Alors la merci enormement ! Pour rester poli, je dirais que je suis littéralement sur mon derrière !
Je ne pensais pas qu'un code résolvant mon probleme puisse etre aussi souple ! Quand a la possibilité de rajouter une machine aussi simplement ... Chapeau !
J'espere arriver à un niveau équivalent un jour et pouvoir partager mon savoir comme ça!
Encore merci
Alors la merci enormement ! Pour rester poli, je dirais que je suis littéralement sur mon derrière !
Je ne pensais pas qu'un code résolvant mon probleme puisse etre aussi souple ! Quand a la possibilité de rajouter une machine aussi simplement ... Chapeau !
J'espere arriver à un niveau équivalent un jour et pouvoir partager mon savoir comme ça!
Encore merci