Copier des lignes d'une autre feuille de calcul basée sur une recherche sur une grille de tags
J'ai un problème avec Excel que j'espérais que quelqu'un pourrait m'aider avec.
J'ai une table où, entre les colonnes de K & Q un certain nombre de balises. Ce que je voudrais faire est d'avoir une fonction ou une macro ou quelque chose qui va me permettre de regarder à l'intérieur de toutes ces étiquettes et copie toutes les lignes qui contiennent un mot à une autre feuille de calcul.
par exemple
I J K L M N O etc.
1 blah blah funding blah blah blah blah
2 funding blah blah blah blah blah blah
3 blah blah blah blah blah blah blah
4 blah blah blah blah blah blah blah
5 blah blah blah blah blah funding blah
6 blah blah funding blah blah blah blah
Il y a d'autres informations dans les colonnes A à H que j'aurai aussi besoin de copier, mais ne souhaitez pas inclure dans la recherche. Donc, dans ce scénario, je voudrais être en mesure de la recherche pour le tag "financement" et, par conséquent, copier les lignes 1, 2, 5 & 6 vers une autre feuille de calcul.
Est-ce possible?
Vous devez vous connecter pour publier un commentaire.
Voici le code. Je donne crédit à tompols de ce forum (j'ai basé mon code ce):
http://en.kioskea.net/forum/affich-242360-copy-row-if-a-range-of-column-matches-a-value
Mise à JOUR:
Code réécrit pour être plus efficace avec de fantastiques points de Jean-François Corbett mis en œuvre (merci!). J'ai aussi ajouté une boîte de message à la fin qui indique combien de lignes ont été copiées.
Je l'ai adapté le code pour faire ce que vous avez besoin de le faire. Ce qui se produit lorsque vous exécutez la macro (assurez-vous que vous n'êtes pas sur la feuille 2) une boîte de dialogue apparaît. Entrez le mot que vous souhaitez filtrer (dans votre dossier de financement), et il va chercher dans K:Q pour les cellules qui en contiennent. Il permet de copier la totalité de la colonne lorsqu'il trouve une correspondance dans la feuille 2.
Accepter les réponses (j'ai remarqué que vous êtes nouveau ici): Si cela fonctionne pour vous, veuillez cliquez sur la flèche qui apparaît sur le coin supérieur gauche pour accepter cette réponse. Merci!
Range("K1:Q1").Offset(i-1, 0)
à la place. AussiRange("A65536")
est Excel 2003 spécifiques. Il y a un moyen de contourner cela en utilisantActiveSheet.Rows.Count
.vous pouvez essayer l'enregistrement d'une macro avec les étapes suivantes:
K
etQ
si j'ai bien compris)vous disposerez alors d'un premier exemple de code pour commencer avec.
voir ici pour quelques conseils sur la façon de nettoyer le code