Macro demande selection de plage de donne- vb - Page 2
Résolu
Précédent
- 1
- 2
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?
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?
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
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
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...
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...
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))
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))
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
Précédent
- 1
- 2