Pert d'une variable dans module

Résolu
julien -  
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai consulté pleins de sujets qui me parle de déclarer en public et patati et patata mais j'ai tout essayé et sois je suis bêbête sois il n'y a pas la solution a ma problématique , qui je suis sûr est simple.

Voila , j'ai un code avec 24 fonction if succésives ( j'en met que 4 en exemple) et à la sortie de ces condition je voudrais appeler une variable qui est contenu dans ces fonctions ..

PROBLEME : la variable est vide !!! PK ??

Code :

'Ce programme permet de fussionner deux graphique

Public nom1 As String
Public nom2 As String Sub Fusionner_graph()
Dim graphiquef As String
Dim graphiquec As String



graphiquef = InputBox(prompt:="Indiquer le nom du paramètre à fusionner ")
graphiquec = InputBox(prompt:=" Indiquer le nom du paramètre à conserver ")

If graphiquef = TRA Then
graphiquef = "Graphique 1"
nom1 = Sheets("Sélection_données").Cells(1, 28) ' La variable nom prend la valeur de AB1 ( nom du paramètre)

Else
If graphiquef = NL Then
graphiquef = "Graphique 2"
nom1 = Sheets("Sélection_données").Range("AC1").Value ' La variable nom prend la valeur de AB1 ( nom du paramètre)
End If
End If
If graphiquec = TRA Then
graphiquec = "Graphique 1"
nom2 = Sheets("Sélection_données").Range("AM1").Value ' La variable nom prend la valeur de AB1 ( nom du paramètre)
Else
If graphiquec = NL Then
graphiquec = "Graphique 2"
nom2 = Sheets("Sélection_données").Range("AM1").Value ' La variable nom prend la valeur de AB1 ( nom du paramètre)
End If
End If

ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.Parent.Cut
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Paste


With ActiveChart ' Avec le graphique actif ( 1)

.FullSeriesCollection(2).Select 'Sélection de la deuxième série
.FullSeriesCollection(2).AxisGroup = 2
.SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)
.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)

With ActiveChart.FullSeriesCollection(1)
.ApplyDataLabels ' Mise en place d'étiquettes
.DataLabels.Select ' Selection des étiquettes
Selection.Position = xlLabelPositionAbove ' Position des étiquettes au dessus du point
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "=Sélection_données!O2:O400 ", 0 ' La valeur des etiquette = O2:0400 ( FMC)
.DataLabels.Select ' Selection des étiquettes
Selection.ShowRange = True '
Selection.ShowValue = False ' Enlever la valeur du point
.HasLeaderLines = False
.DataLabels.Select ' Selection des étiquettes
Selection.Orientation = 4 ' Inversion de l'angle d'orientation
Selection.Orientation = 45 ' Incliner le texte de 45 ° ( Ecriture oblique )
End With

With .Axes(xlValue, xlPrimary) ' Sur l'axe vertical
.HasTitle = True ' Mis en place d'un titre
.AxisTitle.Characters.Text = nom2 ' Le titre est le nom du paramètre

End With

With .Axes(xlValue, xlSecondary) ' Sur l'axe vertical
.HasTitle = True ' Mis en place d'un titre
.AxisTitle.Characters.Text = nom1 ' Le titre est le nom du paramètre
End With
End With
End Sub

1 réponse

Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Bonjour,

Pour ton 1er if, tu as juste sheets(zefzefzefze).cells(a,b), tu as oublié le .value.

Vérifie les autres lignes.
0
julien
 
Salut pierre ,

Merci de ta réponse , mais cela ne change rien ..
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Tu as vérifié via la méthode pas à pas que tu rentrais bien dans une condition et que la cellule dont tu voulais extraire la valeur possédait bien une valeur?
0
julien
 
J'ai inséré une MsgBox avant la fin de la condition c'est ok , après la fin des condition c'est vide ..
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Cela veut juste dire qu'il rentre entre temps dans une autre condition et qu'il prend la valeur d'une cellule vide d'où ton problème de valeur vide.
0
julien
 
Négatif !

Je pense que la variable à une valeur affectée seulement pendant la condition et qu'après le END IF elle est effacer ..
0