[vba] pb de condition

R

Ronan

Guest
Salut a tous,

Voici une macro réalisant un graphique :


Code:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ 
        'Feuil1!R1C1:R' & A & 'C4').CreatePivotTable TableDestination:='', TableName:= _ 
        'Tableau croisé dynamique1' 
    
         
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) 
    ActiveSheet.Cells(3, 1).Select 
    ActiveSheet.PivotTables('Tableau croisé dynamique1').SmallGrid = False 
     
    ActiveSheet.PivotTables('Tableau croisé dynamique1').AddFields RowFields:= _ 
    W, ColumnFields:=Y, PageFields:=X 
     
    ActiveSheet.PivotTables('Tableau croisé dynamique1').PivotFields(Z). _ 
        Orientation = xlDataField 
 
     
    Charts.Add 
     
    ActiveChart.SetSourceData Source:=Sheets('Feuil2').Range('A3') 
    ActiveChart.Location Where:=xlLocationAsNewSheet 
    Application.CommandBars('PivotTable').Visible = False 
     
    If F = 'nombre' Then 
        ActiveChart.PivotLayout.PivotFields('Moyenne ' & Z).Function = xlStDevP 
        End If

La variable F est une variable de type string qui récupere un mot dans une case. Je teste et ici la condition est si F = 'nombre' alors je veux que le graphique soit sous la forme xlStDevP

Mais ceci ne marche pas !
Pourquoi ??
 
R

Ronan

Guest
Merci Pascal76 de ton aide

J'ai essayé mais ca me met une erreur de syntaxe!

La solution qui , a priori, marche est de reprendre le bloc en entier (c'est a dire toute la macro) en mettant juste la condition en 1ere ligne!!! Vue j'ai j'ai quelques condition a respecter, ma macro final pourrait faire un nombre important de lignes, ce n'est pas l'idéal!!

Pourtant ma technique avec le IF devrait marcher !! c'est bizarre !
 
R

Ronan

Guest
C'est peut etre un probleme seulement du a la ligne car le message d'erreur est une erreur d'execution '1004' Erreur définie par l'application ou par l'objet.
Mais je ne voit pas d'ou peut provenir l'erreur !!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ronan, Pascal le Forum

A priori si ta Variable 'F' est bien de Type String, tu peux utiliser l'Opérateur like suggéré par Pascal.

Tu noteras aussi 'Option Compare Text' (pour la Casse' est aussi les * ...

Option Explicit
Option Compare Text

Sub Test()
Dim F As String

F = Range('A1').Text


   
If F Like '*nombre*' Then
        MsgBox 'Glop Glop'
       
'(TheMacro Condition remplie)
   
Else
        MsgBox 'Pas Glop !'
   
End If

End Sub


Pour les reste, je n'ai pas du tout regardé, et je ne peux pas me mettre de toute manière dans le Contexte de ce Code.

Bonne Journée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 623
Membres
103 608
dernier inscrit
rawane