Selection cellule sur variable

Coubnoob

XLDnaute Nouveau
Bonjour,

Ca fait bien 2h que je cherche dans tout les sens a faire une selection de cellule grace a 2 variables, mais aprés les avoir tourné dans tout les sens, toujours impossible de la selectionner, svp aidez moi :p

En gros cette partie dois copier un tableau d'une feuille sur un autre tableau dans le sens inverse (BJ4 copié sur C6, BI4 sur D6,....)
Voila le code :

Sub Copie()
'
' Copie Macro
Dim i As Long
Dim j As Long
Dim c As Long
Dim z As Long
z = 6
i = 4
j = 62
Windows("toute piece.xlsx").Activate
Range(i& & j&).Select
Do While i < 500
Windows("toute piece.xlsx").Activate
If (Range("A" & i) <> "") Then
For c = 3 To 62
j = 65 - c
Cells(j, i).Select
Selection.Copy
Windows("Forecast Expo smoo++").Activate
Range(c & z).Select
ActiveSheet.Paste
Next c
End If
z = z + 6
i = i + 1
Loop

End Sub


Merci de votre aide
Bonne journée
 

Coubnoob

XLDnaute Nouveau
Re : Selection cellule sur variable

Le probléme est que la transposé ne fait que copier une ligne et la met en colonne, moi il faut qu'il prenne une ligne et qu'il la colle en ligne mais inversé, d'ou l'obligation de passer cellule par cellule dans l'ordre decroissant dans un sens et croissant dans l'autre...
 

mutzik

XLDnaute Barbatruc
Re : Selection cellule sur variable

re,

nbcells = range("BJ4",range("BJ4").end(xltoright)).columns 'devrait te donner le nombre de colonnes à transposer en inverse
for cpt = 1 to nbcells
cells(4, BJ ' à convertir en un chiffre correspondant au num de colonne' - cpt +1).copy destination=:cells(6, 2 + cpt)
next cpt

1ere boucle , par ex si col bj = 62 (j'ai pas d'excel sous la main)
cells(4, 62 -1 +1). copy vers cells(6 , 2+1)
soit ligne 4 col 62 (=BJ4) vers ligne 6 col 3 (=C6)

2ème boucle
cells 4, 62 - 2 +1 vers cells (6, 2+2)
ligne 4 col 61 (=BI4) vers D6

etc ...
à tester
 

mutzik

XLDnaute Barbatruc
Re : Selection cellule sur variable

re,
tu mets 1 en A1, 2 en B1
selectionnes les deux cells et tire vers la droite et tu auras les num de colonnes

code testé
Sub transp()
Dim cpt, nrcol
nrcol = Range("BJ4").End(xlToLeft).Column
For cpt = 1 To 62 - nrcol + 1 '62 = colonne BJ
Cells(4, 62 - cpt + 1).Copy Destination:=Cells(6, nrcol + cpt - 1)
Next cpt
End Sub
 

Pièces jointes

  • xld.xlsm
    15.1 KB · Affichages: 53
  • xld.xlsm
    15.1 KB · Affichages: 104
  • xld.xlsm
    15.1 KB · Affichages: 64

Discussions similaires

Réponses
7
Affichages
436

Statistiques des forums

Discussions
312 669
Messages
2 090 741
Membres
104 644
dernier inscrit
MOLOKO67