Aide pour terminer un code qui ne fonctionne pas
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 :oops:
Premièrement on vérifie qu'aucune saisie n'a été oubliée
Code:
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:
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 |