Range avec nombre de ligne et colonnes variables

Résolu/Fermé
Maxxikilla Messages postés 40 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 23 juillet 2013 - 11 juin 2013 à 09:17
Maxxikilla Messages postés 40 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 23 juillet 2013 - 11 juin 2013 à 10:17
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

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
11 juin 2013 à 09:38
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
Maxxikilla Messages postés 40 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 23 juillet 2013
Modifié par Maxxikilla le 11/06/2013 à 09:51
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"!
0
Maxxikilla Messages postés 40 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 23 juillet 2013
11 juin 2013 à 10:17
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
0