Rechercher : dans
Par :

Macro Excel VBA Rechercher puis copier/coller

Dernière réponse le 17 avr 2009 à 10:39:06 tekitizi, le 16 avr 2009 à 22:30:32 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un soucis dans un fichier excel.
Ce fichier en format .xls presente pres de 120 colonnes, et s'étale sur une cinquantaine de lignes.

Il se décompose comme suit:
- la premiere colonne, A, sert de libellé pour les infos présente dans les colonnes suivantes
- la ligne 3 portant des noms d'années, de 2003 à 2008, avec 8 tableaux reprenant les memes années pur des entités différents.
-ainsi, une succession de tableaux, comportant 7 colonnes avec chacune un en tete en ligne 3 ( en l'occurrence des années, --> 2003 à 2008)

Ainsi on a:
- de B à G, je dispose de valeurs qui ont été copiées collées,
-la colonne en valeur, portant le nom de l'année en cours par le programme se chance en "N/A"
- en colonne H, je dispose de données valident pour selectionnée dans le reste de ma feuille (donc comprise entre 2003 et 2008). Les données ci-présentées sont fournies par un Index;Equiv;Equiv, et me servent à les copier/coller dans la colonne de l'année en valeurs (vs suivez jusque là?)
-de meme,je dispose de chiffres differents de I à N ( libellées de 2003 à 2008, qui se remplacent en "N/A" pr l'année selectionnée, et en O je dipose de la colonne Index Equiv ac l'entete de l'année en cours), etc pour la suite des colonnes...


Mon problème est en fait simple:
Comment créer une macro, qui vient automatiquement selectionner la colonne H de l'année traitée par le programme, et qui vienne copier/coller en valeurs les données dans la colonne intitulée "N/A" entre B et G.
De meme, il faudra que cette macro puisse aller en O effectuer l'operation pr les colonnes I à M , puis en V....

Je peux le faire à la main, ms cela prend trop de temps de changer les données pour chaque année..

Merci pour votre aide!

Configuration: Windows XP
Firefox 3.0.8

Meilleures réponses pour « Macro Excel VBA Rechercher puis copier/coller » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
Ubuntu - Un copier coller rapide VoirUn copier-coller ultra-rapide Sous Ubuntu, Linux, il est très simple de faire un copier coller, encore plus simple qu'un “Ctrl + C” “Ctrl + V” : Il suffit de sélectionner le texte (juste le sélectionner) pour le mettre en mémoire puis de...

1

tekitizi, le 16 avr 2009 à 23:16:21

Plus parlant comme ca:

Il faut trouver un moyen de rechercher dans B2:H2 la valeur "N/A", et de remplacer les lignes 5 à 77 de la colonne par celles de H5 à H77.
Range("H5:H77").Select
Application.CutCopyMode = False
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Puis, il faut trouver un moyen de rechercher dans p2:u2 la valeur "N/A", et de remplacer les lignes 5 à 77 de la colonne par celles de v5 à v77.
Range("V5:V77").Select
Application.CutCopyMode = False
Selection.Copy
Range("P5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Etc... apres j'adapterais ;-)

Merci de m'eclairer...

Répondre à tekitizi

2

 michel_m, le 17 avr 2009 à 10:39:06

Bonjour,

essaies cette macro

Sub chercher_na()
Dim tablo()
Dim cptr As Byte, col As Byte

Application.ScreenUpdating = False
col = 2 'colonne de départ (2=B)

tablo = Range("B2:H2").Value
For cptr = 1 To UBound(tablo, 2)
    If IsError(tablo(1, cptr)) Then
        Exit For
    End If
    col = col + 1
Next
Range("H5:H77").Copy Cells(5, col)
End Sub

Cordialement, Michel

Répondre à michel_m