Bonjour à tous,

J'ai une fichier contenant un certain nombre de feuilles commençant par la lettre "L".
Avec le code que j'ai essayé de faire, et lorsque je clique sur le bouton "Valider " de mon UserForm, je dois rechercher si la feuille existe dans mon fichier. Si elle n'existe pas on la créée, si elle existe alors on remplie les colonnes selon les données provenant de l'UserForm.
Mais cela ne marche pas, rien ne se produit. Je n'arrive pas à faire la recherche de la feuille dans mon fichier. La première partie fonctionne bien, mais pas la deuxième (TestA)
Pouvez-vous m'aider s'il vous plait à terminer mon code ?
Merci par avance

Premièrement on vérifie qu'aucune saisie n'a été oubliée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Private Sub CmbOk_Click()
Dim erreur(7) As Boolean, msg As String, I As Byte
Dim Tablo As Variant
 
'Ver = 0
Tablo = Array("", "La ligne de crédit ?", "Le tiers ?", "Le site ?", "L'objet ?", "Le n° d'engagement ?", "Le montant ?", "Qui engage ?")
erreur(1) = Me.CmbListCred = ""
erreur(2) = Me.CmbListeTiers = ""
erreur(3) = Me.CmbListeBat = ""
erreur(4) = Me.TxtObjet = ""
erreur(5) = Me.TxtNum = ""
erreur(6) = Me.TxtMontant = ""
erreur(7) = Me.CmbNom = ""
For I = 1 To 7
    If erreur(I) Then msg = msg & vbCrLf & "-" & " " & Tablo(I)
Next
If msg <> "" Then
    MsgBox "Vous avez oublié" & msg, 0, "A vérifier"
    Exit Sub
End If
 
TestA
UFEngt.CmbListCred.SetFocus
End Sub
Ensuite on passe à la recherche de la feuille et à son remplissage

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
 
Sub TestA()
Dim Ws As Worksheet, NumLig As String
Dim NewRech As Boolean, Exist As Boolean
Dim StFeuilComp As String
WbkRecap As Workbook
shtRecap As Worksheet
Dim LastLigF As Long, LastLigR As Long
 
Application.ScreenUpdating = False
 
Set Ws = ThisWorkbook.Sheets '(?)Toutes les feuilles commençant par L
 
NumLig = Me.CmbListCred.Value
NewRech = False
 
 
    For Each Ws In Worksheets
        If Ws.Name = "L" & NumLig Then 'on cherche la feuille selon CmbListCred
            Set shtRecap = Ws
            Exist = True
            Exit For
        End If
        Next Ws
        If Not Exist Then
        shtRecap = WbkRecap.Sheets.Add(Type:=xlWorksheet) 'si elle n'existe pas on l'a créée
        shtRecap.Name = "L" & NumLig
        NewRech = True
    End If
    'si elle existe on remplie le tableau avec les données de l'UserForm UFEngt
End If
       With Ws
       LastLigF = .Range("A65536").End(xlUp).Row + 1
       .Range("A" & LastLigF).Value = LastLigF - 7
       .Range("B" & LastLigF).Value = Me.TxtDate.Value
       .Range("B" & LastLigF).Value = Format(Me.TxtDate, "mm-dd-yyyy")
       .Range("C" & LastLigF).Value = Me.TxtNum
       .Range("D" & LastLigF).Value = Me.CmbListeBat.Value
       .Range("E" & LastLigF).Value = Me.TxtObjet.Value
       .Range("F" & LastLigF).Value = Me.TxtNumDev.Value
       .Range("G" & LastLigF).Value = Me.TxtDevis.Value
       .Range("G" & LastLigF).Value = Format(Me.TxtDevis, "mm-dd-yyyy")
       .Range("H" & LastLigF).Value = Me.CmbListeTiers.Value
       .Range("I" & LastLigF).Value = Me.LstTiers.Value
       .Range("J" & LastLigF).Value = Me.TxtMontant.Value
       .Range("K" & LastLigF).Value = Me.TxtMarche.Value
       .Range("L" & LastLigF).Value = Me.CmbNom.Value
       End With
    Ws.Close savechanges:=True
 
    Load UFEngt
    For I = 1 To 4 'On cherche les feuilles commençant par BC
        With Sheets("BC" & I)
            'On remplie les feuilles avec les données de l'UserForm UFEngt
            .Range("B24").Value = Me.CmbListeBat.Value
            .Range("B25").Value = Me.CmbNom.Value
            .Range("D24").Value = Me.CmbNom.Value
            .Range("G6").Value = CDate(Me.TxtDate)
            .Range("H14").Value = Me.CmbListCred.Value
            .Range("N11").Value = Me.CmbListeTiers.Value
            .Range("N15").Value = Me.TxtNum.Value
            .Range("N17").Value = Me.TxtMarche.Value
            .Range("N19").Value = Me.TxtNome.Value
            .Range("A29").Value = "Selon votre devis n°" & " " & Me.TxtNumDev & " " & "du" & " " & Me.TxtDevis & " " & "ci-joint."
            End With
 
        Next I
 
        End With
    End If
    Application.ScreenUpdating = True
End Sub