Question

Je veux changer d'une base de données à l'autre.

Il ne semble pas y avoir d'options pour le faire dans le menu contextuel de tableau croisé dynamique

Était-ce utile?

La solution 3

clic droit sur le tableau croisé dynamique dans Excel choisissez assistant cliquez sur « Retour » cliquez sur « obtenir des données ... » dans la fenêtre de requête Fichier - Définition de la table

vous pouvez alors créer un nouveau ou choisir une autre connexion

Autres conseils

Juste figured it out-cliquez dans la table, puis allez dans les onglets en haut de la page et sélectionnez-il des options de vous verrez une sélection Modifier la source de données.

On dirait que cela dépend fortement de votre version d'Excel. J'utilise la version 2007 et il ne propose aucune option de l'assistant lorsque vous faites un clic droit sur la table. Vous devez cliquer sur le tableau croisé dynamique pour faire supplémentaires « Outils » tableau croisé dynamique apparaissent à droite des autres onglets en haut de l'écran. Cliquez sur le « options » onglet qui apparaît ici, alors il y a une grande icône au milieu du ruban appelé «changement source de données.

Pour changer la source de données à partir du ruban dans Excel 2007 ...

Cliquez sur votre tableau croisé dynamique dans la feuille de calcul. Aller au ruban où il est dit Outils de tableau croisé dynamique, onglet Options. Cliquez sur le bouton Modifier la source de données. Une boîte de dialogue apparaît.

Pour obtenir la bonne gamme et éviter un message d'erreur ... sélectionnez le contenu du champ existant et supprimez-le, puis passer à la nouvelle feuille de source de données et mettre en évidence la zone de données (la boîte de dialogue reste au-dessus de tous les fenêtres). Une fois que vous avez sélectionné correctement la nouvelle source de données, il remplira le champ vide (qui vous avez supprimé avant) dans la boîte de dialogue. Cliquez sur OK. Revenez à votre tableau croisé dynamique et il aurait mis à jour avec les nouvelles données de la nouvelle source.

  • Faites un clic droit sur le tableau croisé dynamique, choisissez Assistant Tableau croisé dynamique.
  • Cliquez sur le bouton 'retour' deux fois.
  • Choisir la source de données externes, cliquez sur Suivant.
  • Cliquez Données
  • Dans le premier onglet, bases de données la première option est « nouvelle source de données »

Ce module fera l'affaire pour vous.

http://www.contextures.com/xlPivotPlayPlus01.html

Il montre la chaîne de connexion, et permet d'être changé. Ne pas oublier de modifier la requête SQL et, si nécessaire (avec le même outil).

un peu méfiant de toute solution qui ne nécessite pas de recréer le tableau croisé dynamique à partir de zéro. Il est possible pour les noms d'options de vos champs de pivot pour désynchronisés avec les valeurs qu'ils présentent à la base de données.

Par exemple, dans un classeur que je traite impliquant des données démographiques, si vous essayez de sélectionner le « 20-24 » option tranche d'âge, Excel vous présente en fait avec les chiffres de 25-29 ans. Il ne vous dit pas qu'il fait cela, bien sûr.

Voir ci-dessous pour une approche programmatique (VBA) au problème qui résout ce problème entre autres. Je pense qu'il est assez complet / robuste, mais je ne me PivotTables point apprécierait des commentaires.

Sub SwapSources()

strOldSource = "2010 Data"
strNewSource = "2009 Data"

Dim tmpArrOut

For Each wsh In ThisWorkbook.Worksheets
    For Each pvt In wsh.PivotTables
        tmpArrIn = pvt.SourceData
        ' row 1 of SourceData is the connection string.
        ' rows 2+ are the SQL code broken down into 255-byte chunks.
        ' we need to concatenate rows 2+, replace, and then split them up again

        strSource1 = tmpArrIn(LBound(tmpArrIn))
        strSource2 = ""
        For ii = LBound(tmpArrIn) + 1 To UBound(tmpArrIn)
            strSource2 = strSource2 & tmpArrIn(ii)
        Next ii

        strSource1 = Replace(strSource1, strOldSource, strNewSource)
        strSource2 = Replace(strSource2, strOldSource, strNewSource)

        ReDim tmpArrOut(1 To Int(Len(strSource2) / 255) + 2)
        tmpArrOut(LBound(tmpArrOut)) = strSource1
        For ii = LBound(tmpArrOut) + 1 To UBound(tmpArrOut)
            tmpArrOut(ii) = Mid(strSource2, 255 * (ii - 2) + 1, 255)
        Next ii

        ' if the replacement SQL is invalid, the PivotTable object will throw an error
        Err.Clear
        On Error Resume Next
            pvt.SourceData = tmpArrOut
        On Error GoTo 0
        If Err.Number <> 0 Then
            MsgBox "Problems changing SQL for table " & wsh.Name & "!" & pvt.Name
            pvt.SourceData = tmpArrIn ' revert
        ElseIf pvt.RefreshTable <> True Then
            MsgBox "Problems refreshing table " & wsh.Name & "!" & pvt.Name
        Else
            ' table is now refreshed
            ' need to ensure that the "display name" for each pivot option matches
            ' the actual value that will be fed to the database.  It is possible for
            ' these to get out of sync.
            For Each pvf In pvt.PivotFields
                'pvf.Name = pvf.SourceName
                If Not IsError(pvf.SourceName) Then ' a broken field may have no SourceName
                    mismatches = 0
                    For Each pvi In pvf.PivotItems
                        If pvi.Name <> pvi.SourceName Then
                            mismatches = mismatches + 1
                            pvi.Name = "_mismatch" & CStr(mismatches)
                        End If
                    Next pvi
                    If mismatches > 0 Then
                        For Each pvi In pvf.PivotItems
                            If pvi.Name <> pvi.SourceName Then
                                pvi.Name = pvi.SourceName
                            End If
                        Next
                    End If
                End If
            Next pvf
        End If
    Next pvt
Next wsh

End Sub
  

clic droit sur le tableau croisé dynamique en   excel choisir clic Assistant « retour » cliquez   « Obtenir des données ... » dans la fenêtre requête Fichier   - Définition de la table

     

vous pouvez alors créer un nouveau ou choisir un   connexion différente

a parfaitement fonctionné.

le bouton Obtenir des données est à côté du bouton minuscule avec une flèche rouge à côté de la zone de saisie de texte plage.

pour MS Excel 2000 version bureau, cliquez sur le tableau croisé dynamique vous trouverez un onglet au-dessus du Ribon, appelé outil de tableau croisé dynamique - cliquez sur ce Vous pouvez changer la source de données à partir de l'onglet Données

Dans le cas d'Excel 2007 Vous pouvez modifier dans le menu Options de source de données / Modifier la source de données

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top