Copier des valeurs d'un onglet vers un autre onglet

Bonjour à tous,

je ne connais pas le langage SQL et me débrouille toujours pour utiliser les fonctions ou formules, mais la j'ai de gros doutes sur ce que je souhaite et ce que les fonctions peuvent me permettre.

Ci-joint un tableau comportant des données d'un extract d'une application SAP. J'ai déjà beaucoup filtré au sein de SAP.

Dans la colonne A de l'onglet "Extract..." sont des valeurs commençant toujours par 800 ou 820. Je veux pouvoir trouver toutes celles commençant par 820 et les copier par ordre croissant dans la colonne A de l'onglet "Incident". Ayant obtenu cette base, je peux ensuite depuis l'onglet "Incident" utiliser une fonction recherche V pour retrouver dans d'autres infos contenues dans les colonnes de l'onglet "Extract".

J'ai donné l'exemple du résultat souhaité dans l'onglet Incident.

Merci d'avance

Salut Fab,

Tes données de la colonne A de la feuille Extract_IO_TT ne sont pas toutes à un format "nombre". Je te propose alors de d'abord les transformer à un format nombre et de ne retenir que les valeurs commençant par 820 dans la colonne N de cette même feuille.

Ensuite, tu peux facilement trier ces valeurs dans la colonne A de la feuille Incident.

Mais il y a peut-être plus simple, en tout cas par macro. Tu voudrais une solution dans ce sens là ?

Cordialement

Merci Yvouille,

oui, le fait que les données de la colonne A ne soient dans l'onglet extract pas converties est un obstacle supplémentaire.

Par contre il est indispensable de ne copier dans l'onglet "Incident" que les données commencant par 820 et pour lesquelles dans la colonne "subject" nous ayons "Incident/I Support".

tu l'auras compris, l'idée est de séparer toutes les données incidents et celles "Request For Change/MAC".

Je crois effectivement depuis le début qu'une macro est indispensable, mais je ne sais pas faire les macros, moi et le SQL ca fait deux.

si de ton côté une macro ne te pose pas de pb, je suis preneur.

je te joins le tableau finit avec les recherche V

merci et bien à toi

Salut,

Voici un premier essai. Tu cliques sur le bouton placé sur la feuille «Incident » pour lancer le code.

Je n’ai pas compris ce que tu veux reporter dans tes colonnes G à J.

Tu dis vouloir un ordre croissant selon la colonne A, mais ton exemple est dans l’ordre décroissant.

Merci de déjà voir ce que ça donne et de préciser les corrections nécessaires.

Cordialement.

Yvouille,

oui je vois que ta macro fonctionne bien.

Onglet Extract : lorsque les infos en colonne A commencent par 820 et comportent en colonne D "Incident/I Support" alors dans l'onglet incident je retrouve bien l'ensemble des données que je cherche...et qui plus est sans "recherche V" bravo!

les colonnes G a J sont à compléter à la mano pour le moment car mon appli SAP n'exporte pas encore ces champs la.

Par contre en éditant ta macro, je pensais pouvoir la modifier pour faire la même chose avec les autres données "Request For Change/MAC" commençant aussi par 820...pour les copier dans l'onglet MAC_Change, mais dans ta macro je ne comprends pas comment le critère des infos de la colonne D (incident ou request for change) est reconnu...c'est la tout mon problème avec les macros...

merci encore

Fab1304 a écrit :

mais dans ta macro je ne comprends pas comment le critère des infos de la colonne D (incident ou request for change) est reconnu...

C'est dans cette ligne :

If Left(.Cells(i, 1), 3) = 820 And .Cells(i, 4) = "Incident/I Support" Then

Amilcalement

bonjour ;bonjour Yvouille

en attendant une soluce vba toujours plus performante ;un essai

sans vba ;ni matricielle; ni filtre

63fab1304.zip (46.25 Ko)

cordialement

Merci Yvouille,

non seulement ca marche mais j'ai pu aussi recopier ta macro pour l'appliquer au request for change, je te le joint en exemple.

merci milles fois


et la piece jointe pardon

@ Fab,

Je suis bien content si tu as réussi à récupérer le code comme pour tes autres besoins. Tu aurais pu effacer les lignes en vert que j'avais laissées provisoirement en attendant tes instructions.

Je pense également que l'on aurait pu n'utiliser qu'un seul code et jouer sur le nom des deux feuilles concernées (Incident et MAC_Change), mais si tu n'as pas 36 feuilles avec 36 codes à dupliquer, ça va aussi comme ça.

@Tulipe,

Ton code me semble génial, mais il donne un peu le tournis. Bravo quand même.

Cordialement.

Tulipe,

j’avais aussi oublié de te remercier...oui je rejoins Yvouille, c'est du beau boulot!!!

un grand merci

Salut Yvouille,

en t'éspérant en pleine forme...une petite question concernant ta macro

Cells(i, 1), 3) = 820 And .Cells(i, 4) = "Request For Change/MAC" Then

je souhaite savoir si la phrase ci-dessous peu être plus flexible et me permettre d'étendre ma recherche a tout ce qui commence par Request...je réalise trop tard que j'ai plusieurs options de data commençant par "Request" mais que la macro actuelle probablement a cause du "=" ne me sort que "Request For Change"...ce qui lui ai demandé d'ailleurs...

Donc j'ai essayé avec =%Request% mais ca ne marche pas...c quoi le truc?

merci d'avance

Salut,

Essaie avec ce code :

If Left(.Cells(i, 1), 3) = 820 And Left(.Cells(i, 4), 7) = "Request" Then

Je l'ai placé dans le fichier ci-joint et en ai profité afin de supprimer ces lignes vertes inutiles et de rassembler les deux codes dans le même module. Selon l'essai splcial avec la ligne 2 de ta feuille "Extract_IO_TT", ça semble fonctionner

Cordialement.

Yvouille,

bravo....tu es un AS!

If Left(.Cells(i, 1), 3) = 820 And Left(.Cells(i, 4), 7) = "Request" Then

dans la feuille MAC_Change ca marche je peux retrouver tous ce qui commence avec "Request"

je me suis dit que ce ne serait pas compliqué de faire la même chose avec la feuille incident....

donc j'ai recopié le même code

If Left(.Cells(i, 1), 3) = 820 And Left(.Cells(i, 4), 7) = "Incident" Then

mais la dans la feuille Incident avec cette modif ca marche plus...quand j'appuie sur le bouton. regarde mon tableau

dsl

La fonction Left(.Cells(i, 4), 7) sélectionne les 7 premiers caractères sur la gauche de la valeur de la cells(i,4), c'est à dire "Inciden" alors que tu voudrais "Incident". Il faut donc modifier le code ainsi :

Left(.Cells(i, 4), 8)

En cliquant dans Visual Basic sur le mot "Left" puis en appuyant F1, tu aurais trouvé une quantité de renseignements et d'exemples très intéressants directement dans l'aide Excel.

Amicalement.

Yvouille,

quoi dire d'autre que je suis une bille en VBA...et que ton niveau en impressionne plus d'un autour de moi...si tu étais a mes côtés ton déjeuner te serait offert aujourd'hui....

un très grand merci pour ta dispo et ta réactivité

Très chaleureusement

Salut Yvouille,

dis moi je te joins mon tableau à nouveau après y avoir passé des heures a comprendre pourquoi dans le seul module que tu as créé je ne peux pas rajouter une troisième macro pour un troisième onglet; Service_Request.

je te joins le tableau avec ce que j'ai fait, je pense avoir repris ton principe, mais lorsque j'appuie sur le bouton que j'ai copié dans l'onglet Service_Request, il me sort les mêmes infos que celles de la page Change_MAC, alors qu'il ne devrait sortir que les ref commençant par 800 et contenant "Service Request"...

dsl de t'ennuyer avec ca une nouvelle fois

Très bon dimanche

Fab

Désolé, je n'ai pas vu ton message auparavant, mais comme tu as envoyé deux messages de suite, je n'ai plus été informé par un courriel de ton deuxième postage.

Je découvre par ta question qu'on ne peut apparemment pas nommé une macro c (??). En effet, si tu essaies d'affecter la macro c à un bouton, le message ci-dessous apparait :

capture 07 05 5

Il suffit alors de renommer la macro différemment (par exemple cc) et ça passe !!!!

Rechercher des sujets similaires à "copier valeurs onglet"