Aide sur code vba avec IF

BOUBOU91

XLDnaute Nouveau
Bonjour

Débutant en macro j'ai besoin de votre aide

Je souhaite avoir un code qui permet de tester si la cellule est vide, si pas vide alors continuer "debut instructions"
et si vide tester autre celulle

Tester de L30 à L37

+ simplement je souhaite avoir un code qui permet de créer uniquement des series graphiques qui ne sont pas vides


Ci-dessous le code dans les grandes lignes

Declaration Var-----------------------------------------------------------------------------------------------------------------------

Dim Lignes As Integer, i As Integer, X As Integer
Lignes = 0
i = 2
X = 0

Boucle conditionnel----------------------------------------------------------------------------------------------------------------------------

For X = 30 To 37
VI = Worksheets("DONNEES-GRAPH").Cells(X, 12)
If VI <> " " Then
End If
Next

Debut instructions'---------------------------------------------------------------------------------------------------------------------

For Lignes = 30 To 37---------------
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).Name = "='DONNEES-GRAPH'!$J$" & Lignes
ActiveChart.SeriesCollection(i).XValues = "='DONNEES-GRAPH'!$L$" & Lignes & ":$M$" & Lignes
ActiveChart.SeriesCollection(i).Values = "='DONNEES-GRAPH'!$N$" & Lignes & ":$O$" & Lignes

Fin instruction-----------------------------------------------------

End With
i = i + 1
Next
End Sub

Merci bcp
 

vgendron

XLDnaute Barbatruc
bonjour

si tu ne veux pas d'instruction quand VI est non vide. suffit de ne rien écrire.. ;-)
en d'autres termes.. "raisonnes à l'envers"..

for X=30 to 37
if VI="" then
instruction à faire..
end if 'sous entendu.. sinon.. si VI<>"" alors. rien..
next X
 

BOUBOU91

XLDnaute Nouveau
Boujour

La boucle est tester une fois mais après la macro ne revient pas au début de la boucle

en PJ le fichier Le but est d'avoir la création de series avec des valeurs et surtout pas de series vide

Merci bcp car je ne trouve pas la résolution
 

Pièces jointes

  • ESSAIS.xlsm
    123.3 KB · Affichages: 37

vgendron

XLDnaute Barbatruc
Bon.. avec ce que j'ai compris...

Code:
Sub Macro51()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'--------------------------------------------------------------------------------------------------------------------
Dim Lignes, i, X As Integer
Lignes = 0
i = 2
X = 0

'on clear le graphique 1
With ActiveSheet.ChartObjects("Graphique 1").Chart
    Do Until .SeriesCollection.Count = 1 'boucle supprimant toutes les séries jusqu'à ce qu'on arrive à UN
        .SeriesCollection(2).Delete
    Loop
End With
'--------------------------------------------------------------------------------------------------------------------

For Lignes = 30 To 37
    VI = Worksheets("DONNEES-GRAPH").Cells(Lignes, 12)
    'MsgBox VI
    If VI <> "" Then
        '----------------------------------------------------------------------------------------------------------------------------G5>G9
        'Début Instructions - LIGNE NOIRE
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.PlotArea.Select
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(i).Name = "='DONNEES-GRAPH'!$J$" & Lignes
        ActiveChart.SeriesCollection(i).XValues = "='DONNEES-GRAPH'!$L$" & Lignes & ":$M$" & Lignes
        ActiveChart.SeriesCollection(i).Values = "='DONNEES-GRAPH'!$N$" & Lignes & ":$O$" & Lignes
        ActiveChart.SeriesCollection(i).Select
        With Selection.Format.Line
            .Visible = msoTrue
            '.ForeColor.ObjectThemeColor = msoThemeColorAccent
            .ForeColor.ObjectThemeColor = msoThemeColorText1
            .Weight = 8
            '.ForeColor.TintAndShade = 0
            '.ForeColor.Brightness = 0
            '.Transparency = 0
        End With
   
        '---------------------------------------------------------------------------------------------------------------------
        'BOULE
   
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(i).Select
        ActiveChart.SeriesCollection(i).Points(1).Select
        With Selection
            .MarkerStyle = xlMarkerStyleCircle
            .MarkerSize = 30
            .Format.Fill.Visible = msoTrue
            .Format.Fill.ForeColor.RGB = RGB(0, 0, 0)
            .Format.Line.Visible = msoFalse
        End With

        '--------------------------------------------------------------------------------------------------------------------
        'MSN EN BLANC
   
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(i).Select
        ActiveChart.SeriesCollection(i).Points(1).Select
        ActiveChart.SeriesCollection(i).Points(1).ApplyDataLabels
        ActiveChart.SeriesCollection(i).DataLabels.Select
        ActiveChart.SeriesCollection(i).Points(1).DataLabel.Select
        Selection.ShowCategoryName = -1
        Selection.ShowValue = 0
        Selection.Position = xlLabelPositionCenter
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(i).DataLabels.Select
        ActiveChart.SeriesCollection(i).Points(1).DataLabel.Select
        Selection.AutoText = True
        With Selection.Format.TextFrame2.TextRange.Font.Fill
            '.Visible = msoTrue
            .ForeColor.ObjectThemeColor = msoThemeColorBackground1
            '.ForeColor.TintAndShade = 0
            '.ForeColor.Brightness = 0
            '.Transparency = 0
            '.Solid
            Selection.Format.TextFrame2.TextRange.Font.Size = 20
            Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
        End With
        'Selection.Format.TextFrameI.TextRange.Font.Bold = msoTrue

        '--------------------------------------------------------------------------------------------------------------------
        'SAVING FINALE
   
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(i).Select
        ActiveChart.SeriesCollection(i).Points(2).Select
        ActiveChart.SeriesCollection(i).Points(2).ApplyDataLabels
        ActiveChart.SeriesCollection(i).DataLabels.Select
        ActiveChart.SeriesCollection(i).Points(2).DataLabel.Select
        Selection.ShowSeriesName = -1
        Selection.ShowValue = 0
        Selection.Position = xlLabelPositionCenter
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(i).DataLabels.Select
        ActiveChart.SeriesCollection(i).Points(2).DataLabel.Select
        Selection.AutoText = True
        With Selection.Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(23, 55, 94)
        End With
   
        With Selection.Format.Line
            .Visible = msoTrue
            .ForeColor.RGB = RGB(0, 0, 0)
            .Weight = 2.5
        End With

        With Selection.Format.TextFrame2.TextRange.Font.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(255, 255, 255)
            Selection.Format.TextFrame2.TextRange.Font.Size = 30
            Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
        End With
   
        '-----------------------------------------------------------------------------------------------------------------------------'GO>G9

        i = i + 1
    End If
Next Lignes

'---------------------------------------------------------------------------------------------------------------------
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 719
Messages
2 081 881
Membres
101 829
dernier inscrit
listener75