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
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 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
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
Partager