Range avec nombre de ligne et colonnes variables
Résolu
Maxxikilla
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
Maxxikilla Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Maxxikilla Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
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
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
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
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
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"!
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"!
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
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