Macro Excel VBA Rechercher puis copier/coller

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

2 réponses

  1. 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...
    0
    1. Contributeur
      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

      0