Copie/ colle d'un tableau avec dimensions variables

jeremiek

XLDnaute Nouveau
Bonjour tout le monde,

J'ai un petit probleme en excel VBA et j'espere que vous pourrez m'aider.

je souhaite copier colle un tableau d'un onglet a un autre, seulement les dimensions du tableau varient en lignes et colonne. je ne connais que la 1er cas edu tableau (AM5).

J'ai donc 2 problemes:

1)j'ai reussi a slectionner le tableau en prenant en comtpe le changement de ligne mais pas de colonnes.

2) je n'arrive pas a faire rentrer dans ma formule VBA les nouvelles dimensions du tableau.

Voici ma macro:

Private Sub copy_paste_pivot_table_Click()

Dim LastRow As Long
With ActiveSheet
LastRow = Cells(.Rows.Count, "AU").End(xlUp).Row
End With

msg = " Do you want to copy past the zone from AM6 to AU " & LastRow
ans = MsgBox(msg, vbYesNo)


If ans = vbYes Then Worksheets("RawData").Range("AM5:AU111").Copy Worksheets("sheet2").Range("B4")

Sheets("Sheet2").Select
ActiveWindow.DisplayGridlines = False

Sheets("Sheet2").Columns("A:Z").Select
Sheets("Sheet2").Columns("A:Z").EntireColumn.AutoFit


If ans = vbNo Then MsgBox " change formula"

End Sub

mon probleme se situe dans If ans = vbYes ou je n'arrive pas a donner les nouvelles dimensions du tableau.

Y aurait-il une ame charitable pu rmaider?

Merci d'avance
 

jeremiek

XLDnaute Nouveau
Re : Copie/ colle d'un tableau avec dimensions variables

Merci dranreb macro fonctionne parfaitement.

Seulement je viens de realiser que le nombre de colonne peut egalement varier. J'ai donc du rajouter cette mini macro pour connaitre la dernier collone:

Dim LastColumn As Long
With ActiveSheet.UsedRange
LastColumn = .Columns(.Columns.Count).Column
End With

Tu sais comment je pourrais integrer cette nouvelle donne dans la ligne commencant par "If ans = ..."

Au final je connais la cellule de dpaert mais pas la derniere.
merci d'avance
 

jeremiek

XLDnaute Nouveau
Re : Copie/ colle d'un tableau avec dimensions variables

Kiseki merci pr ton aide mais mon tableau est un croise dynamique et je ne dois pas copier la 1er ligne....

Je connais cette formule, mais elle m'oblige a recupere tout le tableau
 

fhoest

XLDnaute Accro
Re : Copie/ colle d'un tableau avec dimensions variables

Bonjour a tous
voici ton code modifié:
Code:
Private Sub copy_paste_pivot_table_Click()

Dim LastRow As Long
Dim lastcolumn As Integer

With ActiveSheet
LastRow = Cells(.Rows.Count, "AU").End(xlUp).Row
'si tu est sur que tout les elements de la ligne 1 sont renseigné pour chaque colonne
lastcolumn = Range("a1").End(xlToRight).Column

End With

msg = " Do you want to copy past the zone from $AM$6 to " & Cells(LastRow, lastcolumn).AddressLocal

ans = MsgBox(msg, vbYesNo)


If ans = vbYes Then
Worksheets("RawData").Range("AM5", Cells(LastRow, lastcolumn)).Copy Worksheets("Sheet2").Range("B4")

Sheets("Sheet2").Select
ActiveWindow.DisplayGridlines = False

Sheets("Sheet2").Columns("A:Z").Select
Sheets("Sheet2").Columns("A:Z").EntireColumn.AutoF it


Else: MsgBox " change formula"
End If
End Sub
A+
 

Kiseki

XLDnaute Occasionnel
Re : Copie/ colle d'un tableau avec dimensions variables

Bonjour à tous,

Une fois que tu possède le cadre il suffit dès lors de le redimensionner.

VB:
Sub test()
Dim tb As Range
Set tb = [A1].CurrentRegion
tb.Offset(1).Resize(tb.Rows.Count - 1).Select
End Sub

Ou

VB:
Sub test2()
With [A1].CurrentRegion
.Offset(1).Resize(.Rows.Count - 1).Select
End With
End Sub

De là si tu souhaite également redimensionner les colonnes, c'est très simple.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 761
Messages
2 091 798
Membres
105 074
dernier inscrit
JPATOUNE