Range avec nombre de ligne et colonnes variables

[Résolu/Fermé]
Signaler
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
-
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
-
Bonjour,

Pour réaliser une macro, je dois compter le nombre de lignes et de colonnes de mon TCD.
Puis je dois les réinjecter dans un range.
Cependant, j'ai des problèmes de syntaxe avec le range. Pouvez vous m'aider ?

Dim i, x, y As Integer

Dim Pvt As PivotTable
Set Pvt = Worksheets("Client").PivotTables("PivotTable1")

x = Pvt.TableRange1.Rows.Count
y = Pvt.TableRange2.Columns.Count

'permet de réinitialiser les données dans la feuille destination
Sheets("% Client CA").Activate
Range("A1:Q500").Select
Selection.Clear


'et voici les trois types de range que j'ai essayé

' méthode #1
' Range("A3:" & y & x).Select

' méthode #2
'Sheets("Client").Range(Cells(2, 1), Cells(x, y)).Select

' méthode #3
Sheets("Client").Activate

Dim Ws As Worksheet

Set Ws = Worksheets("Client")
objGraph.SetSourceData _
Ws.Range(Ws.Cells(3, 1), Ws.Cells(x, y)), _
xlColumns

Aucun des 3 ne fonctionnent. Je suis à court d'idée et de bidouillage ...
Merci d'avance pour votre aide

3 réponses

Messages postés
24181
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 septembre 2021
6 885
Bonjour,

La 1 est fausse, au moins la 2 semble correcte.
Ca pourrait être aussi :
[A3].Resize(x, y).Select

Maintenant sans dire quel est ton problème exact ni mettre de fichier difficile de t'en dire plus.

eric
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013

Re,

Oui effectivement, je croyais avoir dit quel était mon problème -_-*.

En réalité, j'ai une erreur 1004 Application defined or object defined error qui pointe la ligne --> Sheets("Client").Range(Cells(2, 1), Cells(x, y)).Select

j'ai un onglet "Client" dans lequel j'ai un TCD (dont la taille peut varier)

j'ai un onglet "% Client CA" dans lequel je veux récupérer une partie seulement de mon TCD ( je veux retirer les 2 premières lignes contenant les intitulés)

La macro consiste a récupérer le nombre de ligne et de colonne du tcd, faire un copier de la partie du TCD qui m'itéresse, puis de coller tout ca dans mon "% Client CA"!
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013

J'ai réussi à contourner mon problème.

Sheets("Client").PivotTables("PivotTable1").PivotSelect "", xlDataAndLabel, True
Selection.Copy
Sheets("% Client CA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select


Le principe est de copier l'ensemble du tcd, puis de faire clique droit dans la zone souhaitée, puis coller spécial --> value

Ca permet d'isoler les valeurs, et de faire en sorte que ce que l'on obtient n'est plus un TCD.

Merci pour vote aide