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

Résolu
Précédent
  • 1
  • 2
  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. 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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  4. 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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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