Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] Rechercher/Copier/Coller cellules

Maxoverfred

XLDnaute Occasionnel
Bonjour, autant avec les fonctions Vlookup on peut se débrouiller, autant une fois dans vba, je suis perdu car je ne trouve pas les équivalences.

Donc voici mon problème.

Sheet1:

'A' 'B'
BEL 130
POL 450
RUS 625

ITA 319
ESP 417

Sheet2:

'C' 'D' 'E' 'F'
BEL 521 524
ITA 418 854
POL 412 548
RUS 417 968
ESP 415 548

Je dois donc inspecter ma colonne A de ma Sheet1, à chaque fois que je trouve une valeur, rechercher la valeur équivalente dans la sheet 2 et coller la valeur correspondant (colonne 'B') dans la colonne 'F'.

Certains me diront mais pourquoi utilises-tu le code ? et bien parce que je ne peux pas faire cela directement via une formule dans une cellule, car je dois uniquement le faire à un interval régulier et mes données de la sheet1 change constamment.. donc si quelqu'un m'a compris ce serait bien.. sinon.. beh comme d'hab, je vais chercher et me rendre compte que je me complique encore la chose...


Merci d'avance.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re salut Maxoverfred, salut le forum,

Ce code risque d'être un peu long mais il devrait convenir :


Message édité par: Robert, à: 10/05/2005 17:22
 

Maxoverfred

XLDnaute Occasionnel
Il manque apparemment quelque chose dans la première ligne:
For Each cf1 In Feuil1.Range('A1:' & Feuil1.Range('A65536').End(xlUp)).Row


'Object required'..

Message édité par: maxoverfred, à: 11/05/2005 09:07
 

ChTi160

XLDnaute Barbatruc
Salut Maxoverfred,Robert
robert a décalé la parenthèse supprimer celle après (xLUp) et la mettre à la fin
For Each cf1 In Feuil1.Range('A1:A' & Feuil1.Range('A65536').End(xlUp).Row )
bonne journée
 

Maxoverfred

XLDnaute Occasionnel
Sacré Robert, suis tombé dans le piège de celui qui sait pas analyser ce qu'on lui conseille didju ...me semblait bien que je comprenais rien à ce XLUp..
Bref, de la balle cette fonction, cela marche du tonerre.
Merci à vous deux.

Bonne journée à vous.
 

Maxoverfred

XLDnaute Occasionnel
Pour rester dans le même sujet... à savoir VBA manipulation de données .. car je cherche sur le net, mais je n'arrive pas rapidement à trouver une réponse et à la vue de vos connaissances.. autant les utiliser

J'ai une range: (A2:F2) qui contient les mois (JAN, FEB..)
Je dois regarder dans cette range et comparer une valeur

Exemple

Si je trouve la valeur 'JAN' dans cette range, je dois prendre la lettre de la colonne (ex: 'C')


Ps: c'est en rapport avec mes données au dessus, étant donné que quand je colle les valeurs, je dois savoir dans quelle colonne je vais le faire en fonction du mois courant..

PS2: Après cela, je pense que j'aurai compris..enfin j'espère.. cette partie là du moins en vba.
 

ChTi160

XLDnaute Barbatruc
Re Maxoverfred

pour une meilleure compréhension mets nous donc un petit fichier pour explication et visualisation de ce que tu désires et tu seras exaucé Lol enfin je te le souhaite
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le Maxoverfred, Chti160, le forum,

Désolé Max... mais j'ai rien compris à ta nouvelle question, Une range A2:F2 ne contient que 6 mois et si tu trouves 'JAN' pourquoi la colonne C ? et non pas A...
Bon on va faire comme ça... Tu vas prendre un café, tranquilement, te passer un peu d'eau sur le visage, et tu reconsidères le problème et surtout tu nous éclaires...
En parlant d'éclair, tu sais pourquoi Chirac dit toujours à Raffarin : 'mange un éclair '? Parce que ça fout droit...'
 

Maxoverfred

XLDnaute Occasionnel
Normal que vous comprenez pa, je suis Belge..
Bon, voici le fichier en annexe

Donc le but du jeu est ( je vais l'expliquer avec des mots simples )

J'ai ma cellule A1 dans ma feuille data, c'est une date(oh la belle date), je dois regarder dans ma feuille Manager Info, dans la range AP:BA, le mois correspondant et en fonction du nom de colonne, garder cette réference pour coller mes valeurs (= le code que vous m'avez gentillement donné avant et qui marche)

En clair: le 06/06/2005 -> 'JUN' -> il me faut la valeur 'AU'


Ps: j'ai déjà une formule pour convertir le numéro de colonne en lettre..

Merci...

Je sais pas mais j'ai l'impression quie je vais rester incompris pas grave..

Message édité par: maxoverfred, à: 11/05/2005 11:12
 

Robert

XLDnaute Barbatruc
Repose en paix
Re le Fil, le forum,

Moi je la jouerai Select Case, pas très élegant mais efficace :

 

Maxoverfred

XLDnaute Occasionnel
Je sens une certaine fatigue là.. j'aurais pu trouver un style ainsi.. va falloir me montrer un peu plus de qualité.. sinon, beh sinon hum beh je vais perdre mon boulot !
Non en attendant, cela dépannera.. pas très dynamique mais bon..
 

Maxoverfred

XLDnaute Occasionnel
Bon stop, je pense que j'ai trouvé, j'arrête de vous casser la tête avec ce problème là.
Car dans votre code au début

cf2.Offset(0, 3).Value = cf1.Offset(0, 1).Value

C'est le '3' que je dois déterminer, et pour cela je peux utiliser une cellule temporaire et faire ceci:
MATCH(format(A1,mmm),'Manager Info'!AP2:BA2,0)

ou ceci

LValue = Switch(vmonth = 'JAN', 1, vmonth = 'FEB', 2, vmonth = 'MAR', 3, vmonth = 'APR', 4, vmonth = 'MAY', 5, vmonth = 'JUN', 6, vmonth = 'JUL', 7, vmonth = 'AUG', 8, vmonth = 'SEP', 9, vmonth = 'OCT', 10, vmonth = 'NOV', 11, vmonth = 'DEC', 12)

Merci à moi de me comprendre

Message édité par: maxoverfred, à: 11/05/2005 12:00

Message édité par: maxoverfred, à: 11/05/2005 13:34
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…