Macro marche pas dans la bonne feuille ??

Bonjour

J ai écrit une macro qui copie des valeurs d'un tableau dans un deuxième tableau qui se trouve dans une autre feuille.

La macro marche quand je la lance dans la feuille vers laquelle je veux copier, mais non pas à partir de la feuille où se trouvent les valeurs à copier.

https://www.excel-pratique.com/~files/doc/try3.xls

Pouvez-vous m’aider à corriger cela svp ? Je veux en fait que la macro copie correctement quand je click sur le bouton <copy> dans la feuille T1.

PS: On entre l’année dans la feuille T1, la macro cherche l’année dans le tableau T2 et copie ensuite tous les valeurs du tableau T1 au bon endroit dans T2…

Bonjour

comme tu fais référence à la feuille "T2", il faut ajouter également des points devant Cells

    Set Trgt = .Range(.Cells(6, C.Column), .Cells(14, C.Column))

Super, ça marche merci beaucoup!! Très rapide

Là j’ai toute de suite une deuxième question :

Je veux dans le tableau 2 remplir tous les colonnes qui suivent l’année sélectionnée avec les mêmes valeurs.

Quand je choisis 2008 dans le tableau 1, la macro devrait remplir les colonnes 2008-2019 dans le tableau 2.

J’ai essayé une boucle genre:

Do

‘ copier les valeurs dans la premier colonne

‘ augmenter C par 1 pour bouger dans la colonne suiviante

Loop While C.Column < 20

je n y arrive pas...

Re-

sans boucle

Sub copy()
Dim FindString As String  'Year in question
Dim C As Range      'C to define # of column
Dim Trgt As Range   'Target where values are copied to
Dim DerCol As Integer
FindString = Sheets("T1").Range("H8").Value
   With Sheets("T2")
   Set C = .Range("C5:S5").Find(FindString, LookIn:=xlValues)
   If Not C Is Nothing Then
   DerCol = .[IV5].End(xlToLeft).Column
    Set Trgt = .Range(.Cells(6, C.Column), .Cells(14, DerCol))
    Trgt.Value = Sheets("T1").Range("G11:G19").Value
    End If
End With
End Sub

super!

C est exactement c que je voulais faire !

Tu pourras m expliquer ce ligne en mots stp :

DerCol = .[IV5].End(xlToLeft).Column

C quoi IV5 ? Comment la macro elle sait ou il faut s’arreter à remplir ?

Merci beaucoup Felix

Re-

DerCol = .[IV5].End(xlToLeft).Column

te donne le numéro de la dernière colonne où se trouve la dernière donnée

c'est le même principe que pour une ligne :

DerLig = [A65000].End(xlUp).Row

sans que dans le cas d'une colonne, on part de la dernière colonne (IV, pour Excel 2003 et antérieures), et on regarde vers la gauche jusqu'à la première colonne remplie, donc dans ton cas, la colonne "S" (dernière cellule remplie : "S5"), soit le numéro de colonne 19

ainsi :

Set Trgt = .Range(.Cells(6, C.Column), .Cells(14, DerCol)) 

ta zone part de (pour 2010) : J10 à S14

C génial

Merci beaucoup !!!

Rechercher des sujets similaires à "macro marche pas bonne feuille"