Automatiser collage transposé

kang

XLDnaute Nouveau
Bonjour à tous !

Je souhaiterai automatiser un collage transposé dans une feuille excel.
Pour commencer, j'ai enregistré la manip' avec l'enregistreur et j'ai obtenu ça :

Code:
Sub test()
'
' test Macro
'

'
    Range("H17:H24").Select
    Selection.Copy
    Range("A9").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub

Cependant, j'aurais besoin que la ligne dans laquelle sont collées les données soit ma première ligne vide dans le tableau...

donc remplacer

Code:
Range("A9").Select

par quelque chose d'autre.

J'ai essayé de remplacer par

Code:
 Range("A" & .Rows.Count).End(xlUp).Row + 1

Mais ça ne marche pas...

D'où mes deux questions liées :

- pourquoi ça ne marche pas ?
- comment faire pour que ça marche ?

Merci d'avance !
 

kang

XLDnaute Nouveau
Re : Automatiser collage transposé

Bonjour softmama,

Merci pour ta réponse rapide !
Malheureusement, ça ne fonctionne pas...
le débogueur renvoit l'erreur
erreur de compilation : référence incorrecte ou non qualifiée
et cite le
Code:
.Rows
comme provoquant l'erreur...

En tout cas, merci pour la proposition !
 

Efgé

XLDnaute Barbatruc
Re : Automatiser collage transposé

Bonjour kang, Softmama :),
Une proposition:
[
VB:
Sub test()
Dim L As Long
L = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range(Cells(L, 1), Cells(L, 7)) = Application.Transpose(Range("H17:H24"))
End Sub

Mais ceci
et cite le
Code :
.Rows


comme provoquant l'erreur...
est normal (.Row et pas .Rows)
Cordialement
 

kang

XLDnaute Nouveau
Re : Automatiser collage transposé

Bonjour Efgé, le fil,

Merci pour cette réponse, ça fonctionne impeccablement bien !

Pour ce qui est du .Rows qui ne fonctionnement pas, c'était celui provenant de
VB:
Range("A" & .Rows.Count)

Si tu as l'explication je suis preneur quand même !

Autant j'ai compris le sens de ma macro après l'avoir générée avec l'enregistreur, autant je ne suis pas sur de bien comprendre celle que tu m'as écrit... Je suis carrément preneur d'explications pour m'améliorer !

Merci d'avance !
 

Efgé

XLDnaute Barbatruc
Re : Automatiser collage transposé

Re
Prenons dans l'ordre,
pour
VB:
Range("A" & .Rows.Count).End(xlUp).Row 1
Je pense que c'est le point (.) qui pose problème. Sans lui ç a dvrait aller mieux.
Pour ma proposition, je la commente:
VB:
Sub test()
'On déclare la variable L (voir l'aide sur Long)
Dim L As Long
'L est égal au numéro de la ligne en dessous (+1)
'de la dernière ligne remplie Cells(Rows.Count, 1).End(xlUp)
'en colonne A (1)
L = Cells(Rows.Count, 1).End(xlUp).Row + 1
'Le range Cellule (Ligne L colonne A (1)) jusqu'à la cellule ( Ligne L, colonne H (8)
' est égal au range ("H17:H24") transposé
Range(Cells(L, 1), Cells(L, 8)) = Application.Transpose(Range("H17:H24"))
End Sub
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry