(VBA) UserForm qui ne se lance pas quand on clique sur Valider

Iwana

XLDnaute Nouveau
Bonjour à toutes et à tous en cet après-midi bien grisâtre...

Après des recherches infructueuses sur le forum et dans les tutos, je viens chercher un petit coup de main.
Sur ma feuille d'accueil, un bouton lance la premiere macro qui importe un fichier dans une feuille type "Table_nomfichier" dans le nom varie selon le fichier.
Le 2e bouton permet de lancer un UserForm. Sur ma feuille "Table_nomfichier", un tableau liste les infos par voiture et chaque voiture est numérotée.
En gros, il y a plusieurs colonnes, dont une nommée "voiture" et dans laquelle il y a 1, 2, 3...

Le userform doit permettre de créer une feuille par voiture et d'y coller les infos(de la feuille "Table_" qui lui correspondent.

Le problème : Lorsque je clique sur le bouton qui lance le userform, un boîtier de contrôle s'ouvre avec un bouton "valider" et un bouton "annuler.
Quand je clique sur "Valider", rien ne se passe !

Voici le code mon UserForm (pas encore terminé) :
Code:
Option Explicit

Private Sub annuler_Click()
    Unload Me
    End
End Sub

***************************

' Bouton Valider : crée de nouvelles feuilles portant le numéro de la voiture dont elles affichent les données
Private Sub valider_Click()

  Dim feuille As Worksheet
  Dim nomfeuille As String
  Dim namefeuille As String
  Dim j As Integer

    For j = 1 To (ComboBox1.ListCount)
    
    Set feuille = ActiveWorkbook.Sheets.Add(after:=Sheets(Sheets.Count))
                With feuille
                    .Name = j
                    .Columns("A:A").ColumnWidth = 11
                    .Columns("B:B").ColumnWidth = 11
                    .Columns("C:C").ColumnWidth = 47
                    .Columns("D:D").ColumnWidth = 40
                    .Columns("E:E").ColumnWidth = 22
                    .Columns("F:F").ColumnWidth = 22
                    .Columns("G:G").ColumnWidth = 22
                    .Cells(1, 1) = "tata"
                    .Cells(1, 2) = "tete"
                    .Cells(1, 3) = "titi"
                    .Rows(1).Style = "60*% - Accent2"
                End With
                
        Call Table_to_sheets(j)
    
    Next j
     
End Sub

***************************

Private Sub Calcul_Initialize()
' remplissage de la combobox avec les numéros de voiture

Dim ComboBox1 As ComboBox
Dim j As Integer

With ComboBox1
    .Clear
    For j = 2 To Sheets("Table_*").Range("B65536").End(xlUp).Row
        If .ListCount > 0 Then .Value = Range("B" & j) 'combobox alimentée par les données de la colonne B
    .Value = Sheets("Table_*").Range("B" & j)
        If .ListIndex = -1 Then ComboBox1.AddItem Range("B" & j) 'pour supprimer les doublons
        
    Next j
End With

End Sub

***************************

Function Table_to_sheets(ByVal j As Integer) As String


    Dim ligne As Long
    Dim colonne As String
    Dim nombreligne As Long
    Dim numeroligne As Long
    Dim nomfeuille As String
    
    colonne = "B"
    numeroligne = 1
    
    With Sheets("Table_*")
        nombreligne = .Cells(65536, colonne).End(xlUp).Row
        For ligne = 2 To nombreligne
            If .Cells(ligne, colonne).valu = j Then
                .Cells(ligne, colonne).EntireRow.Copy
                numeroligne = numeroligne + 1
                Cells(numeroligne, 1).Select
                ActiveSheet.Paste
            End If
        Next ligne
    End With
    
End Function

Je ne sais pas où ça coince mais je me dis que mon Sheets("Table_*") est une des raisons du disfonctionnement de mon code.
Mais comme le nom de ma feuille "Table_gnagna" varie en fonction du nom du fichier importé, j'ai tenté avec une *.

Merci d'avance pour votre aide précieuse !
 

bbb38

XLDnaute Accro
Re : (VBA) UserForm qui ne se lance pas quand on clique sur Valider

Bonjour Iwana, le forum,
Avec un petit fichier, comprenant quelques lignes, je pense que tu obtiendras des réponses (simple avis personnel, car des petits génies sont peut-être en train de résoudre ton problème).
Cordialement,
Bernard
 

Iwana

XLDnaute Nouveau
Re : (VBA) UserForm qui ne se lance pas quand on clique sur Valider

Sur judicieux conseil de Bernard, voilà un petit fichier qui, je l'espère, sera plus explicite que le pavé de code que je vous ai pondu...

J'ai créé un module et un userform (test tous les deux) pour que vous ayez le code sous les yeux tout de même.

Un grand merci d'avance !:)
 

Pièces jointes

  • Iwana_pb_userform.xlsm
    29.4 KB · Affichages: 111

bbb38

XLDnaute Accro
Re : (VBA) UserForm qui ne se lance pas quand on clique sur Valider

Bonjour Iwana, le forum,
Une solution (parmi d’autres) dans le fichier ci-joint. Pour tester la macro, le fichier doit comporter uniquement la feuille contenant les données exportées.
Cordialement,
Bernard
 

Pièces jointes

  • Iwana_pb_userform_v2.xlsm
    39.9 KB · Affichages: 101

Iwana

XLDnaute Nouveau
Re : (VBA) UserForm qui ne se lance pas quand on clique sur Valider

Bonjour Bernard & le forum !

Un grand merci Bernard pour ton aide :)
Par contre, j'ai une erreur 1004 "La commande n'a pas pu être exécutée avec la plage spécifiée. Sélectionnez une seule cellule de la plage et réessayez."
Cette erreur apparaît sur la ligne suivante :
Code:
' Créer une liste des plaques sans doublons
  xdlgn = Range("B1048576").End(xlUp).Row
ici -->  Range("B1:B" & xdlgn).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns("P:P"), Unique:=True
Sur ton fichier correction, le tableau commence bien à la ligne 1 mais sur mon fichier il commence en ligne 6, donc j'ai modifié : Range("B6:B" xdlgn)...

Du coup, j'ai également changé ceci :
Code:
' Boucle sur chaque plaque
  xdlgnplaq = Range("P1").End(xlDown).Row
  For i = 2 To xdlgnplaq
    Worksheets.Add , Worksheets(Worksheets.Count)
    Application.Goto ActiveWorkbook.Worksheets(5).Range("A6")
    Range("B6").AutoFilter Field:=2, Criteria1:=Cells(i, 16).Value
    Range("A6:C" & xdlgn).SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets(i).Cells(1, 1)
  Next i

Et j'ai droit à une nouvelle erreur : L'autofilter ne peut pas être appliqué.
J'ai tout remis à 1, comme au début, les erreurs persistent.
Sais-tu d'où cela peut provenir ?

Merci d'avance ! :)
 

bbb38

XLDnaute Accro
Re : (VBA) UserForm qui ne se lance pas quand on clique sur Valider

Bonjour Iwana, le forum,
Essaies avec le fichier ci-joint. Je n’ai aucune erreur lors du lancement de la macro.
Cordialement,
Bernard
 

Pièces jointes

  • Iwana_pb_userform_v3.xlsm
    40 KB · Affichages: 125

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS