Copier une plage VBA ....

Le
SylVBA
Bonsoir à tous,

j'ai une p'tite question

j'ai une feuille avec plein de cellules..

Je souhaite "isoler" la plage Range("G20:N28")

peut on définir une variable du style: Set tablo = Range("G20:N28")

Ayant comme but de sauvegarder les valeurs de ces cellules

Ensuite je souhaite faire un
Cells.ClearContents
Range("A1").Select

Puis "copier" les valeurs du "tablo" dans les cellules à partir de A1

Je ne garde que les valeurs de G20 à N28 et je les colle à partir de
A1

merci d'avance pour votre aide

Bonne soirée !

Syl VBA
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5389371
Sub test()

Dim Tblo
With Worksheets("NomDeLaFeuille")
With .Range("G20:N28")
Tblo = .Value
.ClearContents
End With
.Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo
End With
End Sub




"SylVBA"
Bonsoir à tous,

j'ai une p'tite question

j'ai une feuille avec plein de cellules.....

Je souhaite "isoler" la plage Range("G20:N28")

peut on définir une variable du style: Set tablo = Range("G20:N28")

Ayant comme but de sauvegarder les valeurs de ces cellules

Ensuite je souhaite faire un
Cells.ClearContents
Range("A1").Select

Puis "copier" les valeurs du "tablo" dans les cellules à partir de A1

Je ne garde que les valeurs de G20 à N28 et je les colle à partir de
A1

merci d'avance pour votre aide

Bonne soirée !

Syl VBA
MichDenis
Le #5389361
Pour faire un Cells.ClearContents


Sub test()
Dim Tblo
With Worksheets("NomDeLaFeuille")
With .Range("G20:N28")
Tblo = .Value
End With
.ClearContents
.Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo
End With
End Sub




"SylVBA"
Bonsoir à tous,

j'ai une p'tite question

j'ai une feuille avec plein de cellules.....

Je souhaite "isoler" la plage Range("G20:N28")

peut on définir une variable du style: Set tablo = Range("G20:N28")

Ayant comme but de sauvegarder les valeurs de ces cellules

Ensuite je souhaite faire un
Cells.ClearContents
Range("A1").Select

Puis "copier" les valeurs du "tablo" dans les cellules à partir de A1

Je ne garde que les valeurs de G20 à N28 et je les colle à partir de
A1

merci d'avance pour votre aide

Bonne soirée !

Syl VBA
SylVBA
Le #5389351
Merci Michdenis et re bonsoir,

Super ta solution, mais j'ai fait une modif, car j'avais besoin que
TOUTES les autres cellules soient éffacées

Sub test()


Dim Tblo
With Worksheets("Feuil2")
With .Range("G20:N28")
Tblo = .Value
'.ClearContents
End With
Cells.ClearContents
.Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo
End With
End Sub

Mais pouvez vous m'expliquer l pourquoi du comment sur la
ligne: .Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo

En tout cas un grand merci et à tout à l'heure !

Syl VBA
MichDenis
Le #5389341
.Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo

La méthode "Resize" redimensionne la plage de cellules. Elle a 2 arguments
Resize(Nombre_de_lignes, Nombre_de_colonnes) en tenant compte
de la cellule de départ dans le décompte

La variable Tblo représente une tableau (array) à 2 dimensions

Ubound(tlbo,1) - > 1-> première dimension du tableau = nombre totale de lignes
Ubound(tblo,2) -> 2-> deuxième dimension du tableau -> nombre totale de colonnes




"SylVBA"
Merci Michdenis et re bonsoir,

Super ta solution, mais j'ai fait une modif, car j'avais besoin que
TOUTES les autres cellules soient éffacées

Sub test()


Dim Tblo
With Worksheets("Feuil2")
With .Range("G20:N28")
Tblo = .Value
'.ClearContents
End With
Cells.ClearContents
.Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo
End With
End Sub

Mais pouvez vous m'expliquer l pourquoi du comment sur la
ligne: .Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)) = Tblo

En tout cas un grand merci et à tout à l'heure !

Syl VBA
SylVBA
Le #5389321
Merci MichDenis

C'est très clair !

Je suis contente d'avoir compris quelque chose de + ce soir!

Bonne soirée à toi et aux gentils contributeurs

SylVBA
Publicité
Poster une réponse
Anonyme