Ecrire dans la source
Hello à tous,
J'ai tenté de visualiser (pendant quelques heures) où est le "bug" dans l'écriture...durant mon absence on a modifié quelques peu la programmation mais semble n'y avoir rien de trop complexe... je ne comprends pas ce qui ne fonctionne pas
J'ai ajouté une colonne No.dossier dans ma source que j'ai intitulé Textbox21 puis insérer dans mon code. Qui peut me dire ce qu'il me manque ou ce que j'ai oublié car lorsque j'ouvre ma base et renseigne tout mes champs.. ils sont décalés de 1 ... voici la source dans laquelle j'inscris à partir de ma base de données puis mon code. Merci ++
Ma source :
'Inscrire dans la source
Private Sub Boutoninscrire2_Click()
Dim Rcell As Range
Dim NbLig As Integer
Dim Ligne As Integer
Dim DerLigne As Integer
Dim i As Integer
DerLigne = Sheets("Inscriptions").Range("D" & Rows.Count).End(xlUp).Row + 1
Ligne = 0
With Sheets("Inscriptions")
.Activate
If Application.WorksheetFunction.CountA(Range("E7:E26")) = 20 Then
MsgBox "Tableau complet", vbOKOnly + vbInformation, "COMFIRMATION"
Unload Me
ElseIf ChoixRLS = "" Or NUM = "" Or TextBox21 = "" Or nomprenom = "" Or choixlangue = "" Or _
TextBox12 = "" Or datenaissance = "" Or IntPivot = "" Or _
profilintervention = "" Or oemcdate = "" Then
MsgBox ("Tous les champs obligatoire ne sont pas correctement remplis"), vbExclamation, ""
Else ' <>
If MsgBox("Voulez-vous vraiment inscrire cet usager ?", vbQuestion + vbYesNo, "") = vbYes Then
Application.ScreenUpdating = False
.Unprotect Password:="sapa23"
With .ListObjects("Tableau12")
If WorksheetFunction.CountA(Range("Tableau12['#]")) = 0 Then
Ligne = 7
ElseIf WorksheetFunction.CountA(Range("Tableau12['#]")) > 0 Then
For i = 7 To DerLigne
If Range("C" & i).Value = "" Or Range("E" & i).Value = "" Then
Ligne = Range("E" & i).Row
i = DerLigne
End If
Next i
End If
End With
.Cells(Ligne, 3) = ChoixRLS
If Cells(Ligne, 4) = "" Then: .Cells(Ligne, 4) = NUM
.Cells(Ligne, 5) = TextBox21
.Cells(Ligne, 6) = nomprenom
.Cells(Ligne, 7) = choixlangue
.Cells(Ligne, 8) = TextBox12
.Cells(Ligne, 9) = datenaissance
.Cells(Ligne, 10) = IntPivot
.Cells(Ligne, 11) = profilintervention
.Cells(Ligne, 12) = profilisosmaf
.Cells(Ligne, 13) = Format(Me.oemcdate.Value, "YYYY/MM/DD")
.Protect Password:="sapa23"
MsgBox "Les informations ont été ajoutés à la base de donnée", vbOKOnly + vbInformation, "COMFIRMATION"
Unload Me
Application.ScreenUpdating = True
End If
End If
End With
End Sub For i = 7 To DerLigne
If Range("C" & i).Value = "" Or Range("E" & i).Value = "" Then
Ligne = Range("E" & i).Row
Exit For ' première ligne avec C ou E vide trouvé
End If
Next idès que vous avez trouvé votre ligne, vous pouvez quiter le "For...Next" avec ce "Exit For" sans modifier le "i" en derligne
Merci pour votre retour !
Je ne sais pas si j'arrive à saisir la raison pour laquelle c'est le nom complet de la personne qui s'inscrit en E alors que l'écriture doit se faire en C ensuite en E (ligne vide) .. je devrais voir le no de dossier .. c et e étant mes deux premiers champs renseignés.
re,
C'est possible de télécharger/voir votre fichier ? (Eventuellement en PM)
assurément le voici
j'ai tenté de modifier ma ligne pour renseigner ma cellule.. sans succès
re,
dès qu'on le voit, c'est stupide (comme toutes les erreurs). Votre nouvelle macro s'appèle "Boutoninscrire2_Click" mais le bouton s'appèle "Boutoninscrire". Donc si vous poussez ce bouton, VBA lance l'ancienne macro "Boutoninscrire_Click" et ne pas votre nouvelle macro ""Boutoninscrire2_Click".
Solution : Renommez votre ancienne macro ""BoutoninscrireOLD_Click" (ou autre ou supprimez-la) et supprimez le "2" dans votre nouvelle macro
PS. J'ai légèrement modifié votre macro en utilisant le tableau le max que possible
Néanmoins ca fonctionne et puis merci pour la modif je vais tenter de m'approprier le code.