VBA et les UserForms sous Excel

XRay -  
 ROUVELLAT Bernard -
Hello !
Je voudrai pouvoir éxécuter automatiquement un code VBA à l'ouverture d'un UserForm.
En fait, le seul emplacement que j'ai trouvé pour saisir mon code est le suivant :

Private Sub UserForm_Click()

End Sub

C'est à dire qu'il faut cliquer sur la fenêtre (le UserForm) pour que le code s'execute. Moi je voudrais que le code s'execute dès que le userform se lance. Est-ce possible ?
Je paye des cacahuètes à celui qui trouve ! ;o)
Merci d'avance !

2 réponses

  1. DaNot Messages postés 221 Statut Membre 163
     
    Bonjour,

    Il y a aussi la méthode Initialize généralement utilisée pour initialiser toutes les variables du UserForm.

    Une seule question reste en suspend : Est-ce moi qui a gagné les cacahuettes ?

    DaNot
    0
    1. XRay
       
      Ben en fait, j'ai pas fais comme ca ! J'ai réussi (après 1H de galère) à trouver une solution à mon problème !!! Mais si tu y tiens vraiment, jte paye le paquet de cachuètes ! No prob ;o)
      0
  2. ROUVELLAT Bernard
     
    Mon problème:

    Je voudrais, aprés lancement de la macro, que s' ouvre une boite de dialoque dans laquelle je pourrais choisir le fichier à ouvrir. Dans l' exemple ci-dessous le fichier est nommé pde1.txt. J'aimerais pouvoir sélectionner un des mois de l' année.
    "TEXT;H:\stktlse\Master&Shipment\2004\9840A\Macro\pde1.txt"

    Merci d' avance à celui qui pourrais éventuellement m' aider. J' insère le type de format du fichier pde1.txt.

    ---------------------MACRO EXISTANT-----------------
    Sub FAILPDE()
    '
    ' FAILPDE Macro
    ' Macro enregistrée le 04/05/2004 par rouvebp
    '

    '
    Workbooks.Add
    Application.CommandBars("Drawing").Visible = False
    ActiveWindow.WindowState = xlNormal
    With ActiveWindow
    .Top = 2.5
    .Left = 1.75
    End With
    With ActiveWindow
    .Width = 756.25
    .Height = 466.25
    End With
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;H:\stktlse\Master&Shipment\2004\9840A\Macro\pde1.txt", Destination:= _
    Range("A1"))
    .Name = "pde1"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = xlWindows
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
    .Refresh BackgroundQuery:=False
    End With
    Columns("A:N").Select
    With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .ShrinkToFit = False
    .MergeCells = False
    End With
    Range("C1").Select
    'fin substitution
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Feuil1!$A:$F").CreatePivotTable TableDestination:="", TableName:= _
    "Tableau croisé dynamique2"
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").SmallGrid = False
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
    "SYMPTOM", PageFields:="FAIL"
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DMOD"). _
    Orientation = xlDataField
    'modif du TD
    Range("A1").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("FAIL")
    .Orientation = xlColumnField
    .Position = 1
    End With
    'fin
    Charts.Add
    ActiveChart.SetSourceData Source:=Sheets("Feuil4").Range("A3")
    ActiveChart.Location Where:=xlLocationAsNewSheet
    Application.CommandBars("PivotTable").Visible = False
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    ActiveChart.PlotArea.Select
    With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.Text = "First Passed & End to End Failures on PDE Burn Process 9840A (June 2004)" & Chr(10) & "FAIL1=First Passed & FAILx=End to End"
    End With
    ActiveChart.HasLegend = True
    ActiveChart.Legend.Select
    Selection.Position = xlTop
    ActiveChart.HasDataTable = False
    ActiveChart.Legend.Select
    ActiveChart.ChartArea.Select
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    ActiveChart.PlotArea.Select
    With Selection.Border
    .ColorIndex = 16
    .Weight = xlThin
    .LineStyle = xlContinuous
    End With
    Selection.Fill.PresetTextured PresetTexture:=msoTextureBouquet
    Selection.Fill.Visible = True
    Sheets("Feuil1").Select
    Sheets("Feuil1").Name = "Data"
    Sheets("Feuil4").Select
    Sheets("Feuil4").Name = "TD Global"
    Sheets("Graph1").Select
    Sheets("Graph1").Name = "Graph1"
    Sheets("Graph1").Select
    Sheets("Graph1").Name = "Pareto"
    ActiveChart.ChartArea.Select
    ActiveChart.PlotArea.Select
    ActiveChart.PlotArea.Select
    ActiveChart.ChartType = xlColumnStacked
    'Ajout tableau Pareto PR
    Sheets("Data").Select
    Selection.CurrentRegion.Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Data!$A:$F").CreatePivotTable TableDestination:="", TableName:= _
    "Tableau croisé dynamique2"
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").SmallGrid = False
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
    "CATEG", ColumnFields:="FAIL", PageFields:="FSC"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DMOD")
    .Orientation = xlDataField
    .Caption = "NB DMOD"
    .Function = xlCountNums
    End With
    Charts.Add
    ActiveChart.SetSourceData Source:=Sheets("Feuil5").Range("A3")
    ActiveChart.Location Where:=xlLocationAsNewSheet
    Application.CommandBars("PivotTable").Visible = False
    ActiveWindow.WindowState = xlMaximized
    Sheets("Graph2").Select
    Sheets("Graph2").Name = "Pareto PR"
    Sheets("Feuil5").Select
    Sheets("Feuil5").Name = "TD PR"
    Sheets("Pareto").Select
    Sheets("Pareto").Name = "Pareto Global"
    Sheets("Pareto PR").Select
    ActiveChart.Legend.Select
    Selection.Position = xlTop
    ActiveChart.ChartArea.Select
    ActiveChart.PlotArea.Select
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    ActiveChart.PlotArea.Select
    With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.Text = "Classified Failures 9840A on PDE Burn Process (June 2004)" & Chr(10) & "FAIL1=First Passed & FAILx=End to End"
    End With
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.PlotArea.Select
    With Selection.Border
    .ColorIndex = 16
    .Weight = xlThin
    .LineStyle = xlContinuous
    End With
    Selection.Fill.PresetTextured PresetTexture:=msoTextureBouquet
    Selection.Fill.Visible = True
    'ajout paerto fsc
    Sheets("Data").Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Data!R1C1:R196C6").CreatePivotTable TableDestination:="", TableName:= _
    "Tableau croisé dynamique2"
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").SmallGrid = False
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
    "FSC", ColumnFields:="FAIL"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DMOD")
    .Orientation = xlDataField
    .Caption = "NB DMOD"
    .Function = xlCount
    End With
    Application.CommandBars("PivotTable").Visible = False
    Charts.Add
    ActiveChart.SetSourceData Source:=Sheets("Feuil6").Range("A3")
    ActiveChart.Location Where:=xlLocationAsNewSheet
    ActiveChart.Legend.Select
    Selection.Position = xlTop
    ActiveChart.PlotArea.Select
    With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.Text = "Paerto des FSC 9840A"
    End With
    ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
    ActiveChart.HasDataTable = True
    ActiveChart.DataTable.ShowLegendKey = True
    ActiveChart.PlotArea.Select
    With Selection.Border
    .ColorIndex = 16
    .Weight = xlThin
    .LineStyle = xlContinuous
    End With
    Selection.Fill.PresetTextured PresetTexture:=msoTextureBouquet
    Selection.Fill.Visible = True
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    Sheets("Graph3").Select
    Sheets("Graph3").Name = "Pareto FSC"
    Sheets("Feuil6").Select
    Sheets("Feuil6").Name = "TD FSC"
    Sheets("Pareto Global").Select
    End Sub

    -------------------
    Format du fichier Pde1.txt

    DMOD,LOOP,FAIL,SYMPTOM,FSC,CATEG
    01010992,4,FAIL1,DWXS,none,RW
    01011114,5,FAIL1,SOT1,none,SOT
    01011114,5,FAIL2,SKEW,none,SKEWC
    01011114,5,FAIL3,BSTF,none,BSTF
    01011114,5,FAIL4,FUNCT_FSC,5309,FSC
    01011409,1,FAIL1,MRGM,none,RW
    01011441,6,FAIL1,SKEW,none,SKEWC
    01012140,2,FAIL1,DIAG_FSC,5309,FSC
    01012269,5,FAIL1,DIAG_FSC,550F,FSC
    0