Macro demande selection de plage de donne- vb - Page 2

Résolu
Précédent
  • 1
  • 2
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
Salut,
Encore moi. Je ne dérange pas?
Qu'entends tu par "sélectionner eau" dans la ligne :
Set Num_ligne = Application.InputBox("Sélectionnez eau !", "Sélection de cellules", Type:=8)

Qu'est ce que tu veux faire de ce numéro de ligne?
0
manautop Messages postés 152 Statut Membre 3
 
coucocu,
bien sur que nan
en fait je veus juste faire choisir ou le tdc commence, je parle dans l espace bien sur, j avoue j ai laissez tel quel pour le test, j aurais du y mettre selectionnner l emplacement du tdc ou un truc omme ca
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
Salut,
Je me brosse les dents et te réponds.....

Sheet1!R1C" & Num_col2 & ":R" & Num_ligne & "C" & Num_col3
après les ":" signifie en fait ligne du bas du tavbleau.
La ligne du haut (eau) est ici :
Sheet1!R1C" & Num_col2 & ":R" & Num_ligne & "C" & Num_col3
Il faut donc mettre :
Sheet1!R" & Num_ligne & "C" & Num_col2 & ":R5829C" & Num_col3
ou quelque chose comme ça...
0
manautop Messages postés 152 Statut Membre 3
 
hum ca me donne une erreur ici

ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:=Range3, ColumnFields:=Range1

je te met le bloc dans lequel y a la ligne qui pose prob mais je vois pas pourquoi

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C" & Num_col2 & ":R" & Num_ligne9 & "C" & Num_col3).CreatePivotTable TableDestination:="Sheet1!R2C" & Num_col4, TableName:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:=Range3, ColumnFields:=Range1
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields(CStr(Range1))
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
C'est clair qu'il faut que j'ouvre les yeux!!! J'ai modifié le tableau sourcedata... Donc le "Range" source de ton TCD. Ca ne peux pas fonctionner. Il fallait modifier le Tabledestination comme suit (j'ai remis tout le code) :

Sub essai()

Dim Num_col As Integer, Num_col2 As Integer, Num_col3 As Integer, Num_col4 As Integer, diff As Integer
Set Range1 = Application.InputBox("Sélectionnez le titre de la premiere variable !", "Sélection de cellules", Type:=8)
Set Range3 = Application.InputBox("Sélectionnez le titre de la deuxième variable !", "Sélection de cellules", Type:=8)
Num_col = Range1.Column
Set Range2 = Application.InputBox("Sélectionnez la premiere colonne qui touche le tableau !", "Sélection de cellules", Type:=8)
Num_col2 = Range2.Column
diff = -(Num_col2 - Num_col)
Lettre_col = Left(Range2.Address(0, 0), (Range2.Column < 27) + 2)
Set Num_ligne = Application.InputBox("Sélectionnez eau !", "Sélection de cellules", Type:=8)
Num_ligne = Num_ligne.Row
With Range(Lettre_col & "1")
.FormulaR1C1 = "=RC[" & diff & "]"
.AutoFill Destination:=Range(Lettre_col & "1 :" & Lettre_col & "10000")
End With

Num_col3 = Range3.Column
diff = -((Num_col2 + 1) - Num_col3)
Lettre_col = Left(Range2.Offset(0, 1).Address(0, 0), (Range2.Offset(0, 1).Column < 27) + 2)
With Range(Lettre_col & "1")
.FormulaR1C1 = "=RC[" & diff & "]"
.AutoFill Destination:=Range(Lettre_col & "1 :" & Lettre_col & "10000")
End With
Num_col3 = Num_col2 + 1
Num_col4 = Num_col3 + 2
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C" & Num_col2 & ":R6000C" & Num_col3).CreatePivotTable TableDestination:="Sheet1!R" & Num_ligne & "C" & Num_col4, TableName:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:=Range3, ColumnFields:=Range1
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields(CStr(Range1))
.Orientation = xlDataField
.Function = xlCount
End With
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveWorkbook.ShowPivotTableFieldList = False
Columns(Lettre_col).ClearContents
Lettre_col = Range2.Column
Columns(Lettre_col).ClearContents
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
manautop Messages postés 152 Statut Membre 3
 
ho ok dsl je suis en train d apprendre lol j avoue que j avance pas si vite que ca le debut a ete tres rapide mais j ai dews difficulte a faire le lien entre tout les element encore ... mais je lache pas prise

merci de ton aide je vais essayer de faire une autre macro dans le mm genre avec tout ce que j ai appris mais un peu differente

merci encore, peut etre je devrais me brosser les dents plus souvent
0
Précédent
  • 1
  • 2