Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier une plage VBA ....

5 réponses
Avatar
SylVBA
Bonsoir =E0 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=E9finir une variable du style: Set tablo =3D 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 =E0 partir de A1

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

merci d'avance pour votre aide

Bonne soir=E9e !

Syl VBA

5 réponses

Avatar
MichDenis
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" a écrit dans le message de news:

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
Avatar
MichDenis
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" a écrit dans le message de news:

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
Avatar
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
Avatar
MichDenis
.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" a écrit dans le message de news:

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
Avatar
SylVBA
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