Correction bug dans mon code

stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012 - 24 juil. 2012 à 19:44
stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012 - 29 juil. 2012 à 17:01
Bonjour à toutes et à tous,
Voilà j'ai un fichier excel dont j'ai une erreur 1004 qui se produit quand une certaine page n'a pas été trouvée et donc arrête l'importation des pages demandées. Je voudrais corriger ça en rajoutant un bout de code pour qu'il retente le téléchargement de cette page sans tout planter.
J'explique le fonctionnement de mon fichier j'ai dans un premier temps une feuille Accueil ou j'ai une cellule en D11 pour entrer une date (sauf date d'aujourd'hui)car il importe des résultats PMU donc toujours entrer une date autre que celle du jour sinon cela ne fonctionne pas. Ensuite j'ai deux boutons sur cette même feuille le premier pour importer tous les résultats de chaque réunion du jour demandé et le 2ème pour importer les courses choisi en colonne H de la feuille "Import" qui se créer automatiquement.
Voici le nom du premier module nommé "Import"


Option Explicit
Public LaDate As String
Public Ws As Worksheet
'Public Pas As Double
Public NbTablo As Integer


Sub ImportPagePrincipale()
Dim I As Integer

  If IsDate(Range("D11")) Then
    Application.ScreenUpdating = False
    LaDate = Format(Range("D11"), "dd/mm/yyyy")
    
    Application.DisplayAlerts = False
    For I = Sheets.Count To 2 Step -1
      Sheets(I).Delete
    Next I
    Application.DisplayAlerts = True
    
    Sheets.Add after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Import"
    Sheets.Add after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "ImportReunions"
    
    Set Ws = Sheets("Import")
    
    ImportPage Ws.Name, "http://www.paris-turf.com/pid1-paris-turf-la-base-numero-1-du-turf.-tierce-quarte-quinte-pmu-pmh.html?date=" & LaDate
    Nettoyage
    Ws.Select
    
  End If
End Sub

Sub ImportTableaux()
Dim I As Integer

  Application.ScreenUpdating = False
  LaDate = Format(Range("D11"), "dd/mm/yyyy")
  UserForm1.Show 0
  Set Ws = Sheets("Import")

  NbTablo = Application.CountIf(Ws.Columns("H"), "x")
  If NbTablo > 0 Then
    LesReunions
    For I = 4 To Sheets.Count
      With Sheets(I).Cells
        .WrapText = False
        .EntireColumn.AutoFit
      End With
    Next I
    UserForm1.Height = 165
  End If
  Application.DisplayAlerts = False
  Sheets("Import").Delete
  Sheets("ImportReunions").Delete
  Application.DisplayAlerts = True
    
End Sub

Sub ImportPage(Feuille As String, Lien As String)
  
  UserForm1.Caption = Lien
  UserForm1.Repaint

  Shell "RunDll32.exe InetCpl.Cpl, ClearMyTracksByProcess 8"
  Sheets(Feuille).Cells.Clear
  
  With Sheets(Feuille).QueryTables.Add(Connection:= _
              "URL;" & Lien, Destination:=Sheets(Feuille).Range("A1"))
    .Name = "2012"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = False
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingAll
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End Sub



dans ce premier module le 1er bouton est affecté a la macro "ImportPagePrincipale" et le 2ème boutons affecté a la macro "ImportTableaux"

Ensuite j'ai un 2ème module nommé "Nettoie"

Option Explicit

Sub Nettoyage()
Dim Cel As Range
Dim Depart As String
Dim LgDep As Long
Dim LgFin As Long
Dim Lgder As Long
Dim Ligne As Long

  Application.ScreenUpdating = False
  
  With Ws
    ' On supprime les lignes jusqu'à la 1ère occurence de la date
    Ligne = 1
    Do While InStr(1, .Range("A" & Ligne), LaDate) = 0
      .Rows(Ligne).Delete
    Loop
    
    Lgder = .Range("A" & Rows.Count).End(xlUp).Row
    
    ' On cherche la ligne qui est juste après le dernier tableau
    ' Et on efface de cette ligne jusqu'à la fin de la page
    Set Cel = .Columns("A").Find(what:="La base numéro 1 du Turf", LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      .Rows(Cel.Row & ":" & Lgder).ClearContents
    Else
      MsgBox "Impossible de trouver le marqueur : La base numéro 1 du Turf"
      End
    End If
    
    ' Entre chaque titre des réunions et le tableau on efface les lignes
    Set Cel = .Columns("A").Find(what:=LaDate, LookIn:=xlValues, lookat:=xlPart)
    If Not Cel Is Nothing Then
      Depart = Cel.Address
      Do
        .Rows(Cel.Row + 1 & ":" & Cel.Row + 9).ClearContents
        Set Cel = .Columns("A").FindNext(Cel)
      Loop While Not Cel Is Nothing And Depart <> Cel.Address
    End If
    
    ' On efface toutes les lignes avec "fermer"
    Set Cel = .Columns("A").Find(what:="fermer", LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Depart = Cel.Address
      Do
        .Rows(Cel.Row).ClearContents
        Set Cel = .Columns("A").FindNext(Cel)
      Loop While Not Cel Is Nothing
    End If
    
    ' On supprime toutes les lignes vierges
    On Error Resume Next
    .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
    
    Lgder = .Range("A" & Rows.Count).End(xlUp).Row
  End With

End Sub



Et un 3ème module nommé "Reunions"

Option Explicit

Sub LesReunions()
Dim Feuille As String
Dim J As Long
Dim Lgder As Long
Dim WsImp As Worksheet
Dim Cel As Range
Dim Progression As Double
Dim Pas As Double

  Set WsImp = Sheets("ImportReunions")
  
  Lgder = Ws.Range("A" & Rows.Count).End(xlUp).Row
  Pas = (UserForm1.Label5.Width - 4) / NbTablo
  
  For J = 1 To Lgder
    'If J = 10 Then Exit Sub
    If InStr(1, Ws.Range("A" & J), LaDate) > 0 Then
      Feuille = Left(Ws.Range("A" & J), InStr(1, Ws.Range("A" & J), " -") - 1)
    Else
      If Ws.Range("B" & J).Hyperlinks.Count 1 And Ws.Range("H" & J) "X" Then
        Progression = Progression + Round((100 / NbTablo), 2)
        UserForm1.Label2.Caption = Val(UserForm1.Label2.Caption) + 1
        UserForm1.Label3.Caption = Progression & "%"
        UserForm1.Label4.Width = Val(UserForm1.Label2.Caption) * Pas
        UserForm1.Caption = Ws.Range("B" & J).Hyperlinks(1).Address
        UserForm1.Repaint
        
        ImportPage "ImportReunions", Ws.Range("B" & J).Hyperlinks(1).Address
        'Stop
        With WsImp
          Set Cel = .Columns("A").Find(what:="Origines", LookIn:=xlValues, lookat:=xlWhole)
          If Not Cel Is Nothing Then
            .Rows(Cel.Row & ":" & Rows.Count).Delete
          Else
            MsgBox "Impossible de trouver le marqueur : Origines"
            End
          End If
          
          Set Cel = .Columns("A").Find(what:="1er", LookIn:=xlValues, lookat:=xlWhole)
          If Not Cel Is Nothing Then
            .Rows("1:" & Cel.Row - 2).Delete
          Else
            MsgBox "Impossible de trouver le marqueur : 1er"
            End
          End If
          
          On Error Resume Next
          .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
          On Error GoTo 0
          
          Lgder = .Range("A" & Rows.Count).End(xlUp).Row
          
          If FeuilleExiste(Feuille) = False Then
            Sheets.Add after:=Sheets(Sheets.Count)
            ActiveSheet.Name = Feuille
          End If
          
          With .Range("A1:N" & Lgder)
            .Borders.Weight = xlThin
            .Copy Destination:=Sheets(Feuille).Range("A" & Rows.Count).End(xlUp).Offset(2, 0)
          End With
        End With
      End If
    End If
    
  Next J
  
End Sub


Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function



J'ai aussi ajouter un user form avec 5 label qui sert en faite de progresse barre et affiche le % de téléchargement + le nombre de courses importées. Il n'y a pas de code dedans juste la commande unload pour le bouton et fermer cette fenêtre.

Voilà j'aimerais vôtre aide surtout pour améliorer le code au niveau d'un echec de téléchargement d'une page.


Je précise aussi que l'erreur se produit en erreur 1004 avec le message impossible d'importer la page demandée en insistant cela fonctionne mais bon pas tout le temps et l'erreur arrive dans le module "Import" à la ligne

J'oubliais aussi au premier clik du 1er bouton deux feuilles se créer "Import" et "ImportReunions" dans la feuille "Import" il faut double cliquer dans la colonne H pour sélectionner les courses que l'on souhaite.

30 réponses

stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012
28 juil. 2012 à 16:55
Enfin plutôt la feuille ImportReunion car c'est là ou tout est trié sur chaque course.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 juil. 2012 à 17:12
Pas certain puisque ça ne plante pas...

Mais peut-être en changeant ceci
Au début
Sub ImportPage(Feuille As String, Lien As String)
  Static Tentatives As Integer
  On Error GoTo Erreur


et à la fin
  Exit Sub
Erreur:
  Tentatives = Tentatives + 1
  If Tentatives < 5 Then
    ImportPage Feuille, Lien  'on s'essaie durant quelques coups
  Else
    Tentatives = 0  ' ici ça va sortir
  End If



MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012
28 juil. 2012 à 17:13
Tu prend par exemple le 1 juillet 2012 dans la réunions de Elbeuf dans la feuille Import il me manque la première course parfois il arrive qu'il manque la 1ère course sur certaine réunion. Peut on améliorer ça ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 juil. 2012 à 18:47
Je vois...
Ton problème vientde cette partie de Nettoyage
' Entre chaque titre des réunions et le tableau on efface les lignes
    Set Cel = .Columns("A").Find(what:=LaDate, LookIn:=xlValues, lookat:=xlPart)
    If Not Cel Is Nothing Then
      Depart = Cel.Address
      Do
        .Rows(Cel.Row + 1 & ":" & Cel.Row + 9).ClearContents
        Set Cel = .Columns("A").FindNext(Cel)
      Loop While Not Cel Is Nothing And Depart <> Cel.Address
    End If

Il n'y a pas toujours 9 lignes, donc tu effaces une partie des données que tu voudrais conserver. J'essaierais en recherchant le "N" en A pour déterminer le commencement de la prochaine série.


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012
28 juil. 2012 à 18:57
Ok merci MPI c'est ce que je pensais tu pourrais modifier tous ça et mettre toutes les modifs avec les codes complet des trois modules principaux et les poster.
Merci de ton aide je pense que le fichier aura bien été amélioré.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 juil. 2012 à 22:52
Je n'ai pas apporté beaucoup de changements, mais bon... comme je n'ai pas ton adresse, je vais mettre les 2 Sub modifiées

En entête, je n'ai laissé que ceci qui aurait tout aussi bien pu être enlevés et mis en paramètre des Sub...

Option Explicit
Public LaDate As String
Public NbTablo As Integer

Et comme je disais, j'ai mis la date en format texte en mettant une apostrophe devant pour qu'elle garde le format voulu... C'était plus simple que de gérer un format qui n'était pas conservé... De toutes façons, comme la date sert pour une URL qui se fout que ce soit une date ou du texte, ça ne change rien...

Et il y a possiblement certaines variables que je n'ai pas utilisées et qui sont encore là...

Sub Nettoyage()
    Dim I As Long, J As Long
    Dim Cel As Range
    Dim Adresse As String
    Dim Depart As Long, Fin As Long
    Dim LgDep As Long
    Dim LgFin As Long
    Dim Lgder As Long
    Dim Ligne As Long
    Dim LocalDate As String
    Dim Separateur As String
    Dim Ws As Worksheet

  Application.ScreenUpdating = False
  
  Set Ws = Sheets("Import")
  
  With Ws
    ' On supprime les lignes jusqu'à la 1ère occurence de la date
    LgFin = .Cells(Rows.Count, "A").End(xlUp).Row
    For I = 1 To LgFin
        If InStr(1, .Range("A" & I), LaDate) > 0 Then
            .Rows(1 & ":" & I - 1).Delete  'Effacer tout d'un coup plutôt que ligne par ligne
            Exit For
        End If
    Next
    
    ' On cherche la ligne qui est juste après le dernier tableau
    ' Et on efface de cette ligne jusqu'à la fin de la page
    LgFin = .Cells(Rows.Count, "A").End(xlUp).Row
    Set Cel = .Columns("A").Find(what:="La base numéro 1 du Turf", LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      .Rows(Cel.Row & ":" & LgFin).ClearContents
    Else
      MsgBox "Impossible de trouver le marqueur : La base numéro 1 du Turf"
      Exit Sub  'End
    End If
    
    ' Entre chaque titre des réunions et le tableau on efface les lignes
    For I = 1 To LgFin
        If InStr(1, .Range("A" & I), LaDate) > 0 Then
            For J = I To LgFin
                If UCase(.Range("A" & J)) = "N" Then
                    .Rows(I + 1 & ":" & J - 1).Delete
                    Exit For
                End If
            Next
        End If
    Next
    
    ' On efface toutes les lignes avec "fermer"
    Set Cel = .Columns("A").Find(what:="fermer", LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Adresse = Cel.Address
      Do
        .Rows(Cel.Row).ClearContents
        Set Cel = .Columns("A").FindNext(Cel)
      Loop While Not Cel Is Nothing
    End If
    
    ' On supprime toutes les lignes vierges
    On Error Resume Next
    .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
    
  End With

  Set Ws = Nothing
End Sub



Sub LesReunions()
Dim Feuille As String
Dim J As Long
Dim Lgder As Long
Dim WsImp As Worksheet
Dim Cel As Range
Dim Progression As Double
Dim Pas As Double

  Set WsImp = Sheets("ImportReunions")
  Set Ws = Sheets("Import")
  
  Lgder = Ws.Range("A" & Rows.Count).End(xlUp).Row
  Pas = (UserForm1.Label5.Width - 4) / NbTablo
  
  For J = 1 To Lgder
    If InStr(1, Ws.Range("A" & J), LaDate) > 0 Then
      Feuille = Left(Ws.Range("A" & J), InStr(1, Ws.Range("A" & J), " -") - 1)
    Else
      If Ws.Range("B" & J).Hyperlinks.Count 1 And LCase(Ws.Range("H" & J)) "x" Then
        Progression = Progression + Round((100 / NbTablo), 2)
        UserForm1.Label2.Caption = Val(UserForm1.Label2.Caption) + 1
        UserForm1.Label3.Caption = Progression & "%"
        UserForm1.Label4.Width = Val(UserForm1.Label2.Caption) * Pas
        UserForm1.Caption = Ws.Range("B" & J).Hyperlinks(1).Address
        UserForm1.Repaint
        
        ImportPage "ImportReunions", Ws.Range("B" & J).Hyperlinks(1).Address
        
        With WsImp
          Set Cel = .Columns("A").Find(what:="Origines", LookIn:=xlValues, lookat:=xlWhole)
          If Not Cel Is Nothing Then
            .Rows(Cel.Row & ":" & Rows.Count).Delete
          Else
            MsgBox "Impossible de trouver le marqueur : Origines"
            Exit Sub        'End
          End If
          
          Set Cel = .Columns("A").Find(what:="1er", LookIn:=xlValues, lookat:=xlWhole)
          If Not Cel Is Nothing Then
            .Rows("1:" & Cel.Row - 2).Delete
          Else
            MsgBox "Impossible de trouver le marqueur : 1er"
            Exit Sub        'End
          End If
          
          On Error Resume Next
          .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
          On Error GoTo 0
          
          Lgder = .Range("A" & Rows.Count).End(xlUp).Row
          
          If FeuilleExiste(Feuille) = False Then
            Sheets.Add after:=Sheets(Sheets.Count)
            ActiveSheet.Name = Feuille
          End If
          
          With .Range("A1:N" & Lgder)
            .Borders.Weight = xlThin
            .Copy Destination:=Sheets(Feuille).Range("A" & Rows.Count).End(xlUp).Offset(2, 0)
          End With
        End With
      End If
    End If
    
  Next J
  
  Set WsImp = Nothing
  Set Ws = Nothing
End Sub


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012
29 juil. 2012 à 06:40
J'ai rajouté le petit bout de code qui permet de refaire des essai d'importation j'ai pu importer plus de 100 courses sans cette fichu erreur donc ça fonctionne.

Encore un truc aussi dans mon user form je voudrais cacher la barre de titre donc sur un fichier neuf j'ai fais ça.
J'ai mis deux boutons sur une feuille avec cette macro
Private Sub CommandButton1_Click()
    UserForm1.Show vbModeless
End Sub

Private Sub CommandButton2_Click()
   Unload UserForm1
End Sub

Ensuite j'ai mis un module avec ce code

Option Explicit

'Pour enlever la barre de titre du UF
Public Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Const GWL_STYLE = (-16)
Const WS_CAPTION = &HC00000
Const SWP_FRAMECHANGED = &H20

Public Declare Function FindWindowA Lib "user32" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
        
Public Declare Function GetWindowRect Lib "user32" _
        (ByVal hwnd As Long, lpRect As RECT) As Long
        
Public Declare Function GetWindowLong Lib "user32" Alias _
        "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias _
        "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
        ByVal dwNewLong As Long) As Long

Public Declare Function SetWindowPos Lib "user32" _
        (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, _
        ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _
        ByVal wFlags As Long) As Long
Public Type POINTAPI
        X As Long
        Y As Long
End Type
Public m_CursorPos As POINTAPI
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Public Afficher As Boolean

Sub OteTitleBarre(stCaption As String, pbVisible As Boolean)
Dim vrWin As RECT
Dim style As Long
Dim lHwnd As Long
'- Recherche du handle de la fenêtre par son Caption
    lHwnd = FindWindowA(vbNullString, stCaption)
    If lHwnd = 0 Then
        MsgBox "Handle de " & stCaption & " Introuvable", vbCritical
        Exit Sub
    End If
    
    GetWindowRect lHwnd, vrWin
    style = GetWindowLong(lHwnd, GWL_STYLE)
    If pbVisible Then
        SetWindowLong lHwnd, GWL_STYLE, style Or WS_CAPTION
    Else
        SetWindowLong lHwnd, GWL_STYLE, style And Not WS_CAPTION
    End If
    SetWindowPos lHwnd, 0, vrWin.Left, vrWin.Top, vrWin.Right - vrWin.Left, _
            vrWin.Bottom - vrWin.Top, SWP_FRAMECHANGED
End Sub

j'ai mis un user form avec ce code
Option Explicit

Dim LG3 As Integer
Dim Deb As Integer

Private Sub UserForm_Initialize()

    OteTitleBarre Me.Caption, False
    Me.Height = 43
End Sub


Mon user form s'ouvre bien sans barre de titre par contre problème quand je le met dans mon fichier avec les importation cela ne fonctionne pas t'a une idée?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 juil. 2012 à 15:31
Si ça fonctionne avec un, ça devrait fonctionner avec l'autre.
Tu es certain d'avoir tout mis le code nécessaire (APIs) dans to programme ?


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 juil. 2012 à 16:40
Bonjour,
Je te répondrai bien volontiers, mais pas tant que je verrai dans ton code des fonctions et d'autres petites choses non utilisées (GetCursorPos et WindowFromPoint, entre autres... ) qui donnent à penser que :
- soit tu copies/colles des bouts de code non compris et inutilement
- soit tu fais intervenir ailleurs (mais où ?) ces fonctions
Quant à :
quand je le met dans mon fichier avec les importation cela ne fonctionne pas

1) je plussoie ce qu'en a dit MPi
2) Comment en extrais-tu le handle ? Et si de même : quel est le caption de ton userform ? s'il en a un : est-tu certain de ce qu'à ce moment-là aucune autre fenêtre n'a le même caption ? (car alors, ===>> )
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
stepaustral Messages postés 54 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 29 juillet 2012
29 juil. 2012 à 17:01
Tout est d'origine dans les codes que j'ai mis au début qui a été fais par la même personne a ma demande ensuite le dernier code j'ai trouvé ça sur un site c'est pour supprimer la barre de titre du user form. Tiens si tu veux mon mail MPI je peux t'envoyer le fichier que j'ai fais .
muratime@wanadoo.fr
0
Rejoignez-nous