Bonjour,
je débute en VBA, et j'essaye d’élaborer un outil de gestion de formation.
j'ai un message du type "nombre d'arguments incorrect ou affectation de propriété incorrecte" qui s'affiche.
l'erreur me montre le debut de cette ligne en jaune :"If CTRL = "" Then".
j'ai beau chehcher sur le net mais je ne trouve aucune solution.
pourriez vous m'aider...
la voici:
Private Sub CmdModif1_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim i As Integer
Dim Response As Byte
'ici une boucle sur tous les controls, si un est vide on sort et on set le focus dessus
For Each CTRL In Me.Controls
If CTRL = "" Then MsgBox "Donnée Incomplete", vbCritical, T: CTRL.SetFocus: Exit Sub
Next CTRL
'Si le User tente de change le nom de la ComboBox en Mode Modification
If Me.ComboBox1.ListIndex = -1 Then
MsgBox "Attention comme dans toute Base de Données, le Nom est la Clef de L'enregistrement" & vbCrLf & _
"Ce qui implique que vous ne pouvez pas Modifier cette Clef. " & vbCrLf & _
"Par conséquent pour un changement de Nom vous devez Supprimer l'enregistrement", vbCritical, T & " Warning System Integrity"
Exit Sub 'ON sort si pas de sélection
End If
'Ici une cascade de IF si les controls non pas été changés...
If Nom = ComboBox1 Then
If numéro = TextBox1 Then
If dateobt = TextBox2 Then
If recyclage = TextBox3 Then
MsgBox "Hé alors vous croyez que je ne vais pas voir que vous n'avez rien changé", vbCritical, T & " LOL LOL LOL !!!"
Exit Sub
End If
End If
End If
End If
'Ici un message demandant d'accepter les changement en les listant
Response = MsgBox("Les coordonnées de " & vbCrLf & vbCrLf & _
"Old Nom : " & vbTab & Nom & vbCrLf & _
"New Nom : " & vbTab & ComboBox1 & vbCrLf & vbCrLf & _
"Old numéro : " & vbTab & numéro & vbCrLf & _
"New numéro : " & vbTab & TextBox1 & vbCrLf & vbCrLf & _
"Old dateobt : " & vbTab & dateobt & vbCrLf & _
"New dateobt : " & vbTab & TextBox2 & vbCrLf & vbCrLf & _
"Old recyclage : " & vbTab & recyclage & vbCrLf & _
"New recyclage : " & vbTab & TextBox3 & vbCrLf & vbCrLf & _
"Acceptez vous ces changements ? ", vbQuestion + vbOKCancel, T & " Modification de : " & Nom)
'Si Réponse OK on continue
If Response = 1 Then
'ici avec la Feuille on va faire :
With WS
.Range("F" & Me.ComboBox1.ListIndex + 4) = ComboBox1 'On écrit dans chaque colonne les valeurs des différents controls
.Range("I" & Me.ComboBox1.ListIndex + 4) = TextBox1 'Idem
.Range("J" & Me.ComboBox1.ListIndex + 4) = TextBox2 'Idem
.Range("K" & Me.ComboBox1.ListIndex + 4) = TextBox3 'Idem
With worksheets("PSC1")
.Range("I" & Me.ComboBox1.ListIndex + 4) = TextBox1 'Idem
.Range("J" & Me.ComboBox1.ListIndex + 4) = TextBox2 'Idem
.Range("K" & Me.ComboBox1.ListIndex + 4) = TextBox3 'Idem
End With
End With
'On evoie un message de confirmation
MsgBox "Opération accomplie", vbInformation, T
Ini 'On lance la réinitialisation du UserForm (Macro en haut du Module)
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub
je débute en VBA, et j'essaye d’élaborer un outil de gestion de formation.
j'ai un message du type "nombre d'arguments incorrect ou affectation de propriété incorrecte" qui s'affiche.
l'erreur me montre le debut de cette ligne en jaune :"If CTRL = "" Then".
j'ai beau chehcher sur le net mais je ne trouve aucune solution.
pourriez vous m'aider...
la voici:
Private Sub CmdModif1_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim i As Integer
Dim Response As Byte
'ici une boucle sur tous les controls, si un est vide on sort et on set le focus dessus
For Each CTRL In Me.Controls
If CTRL = "" Then MsgBox "Donnée Incomplete", vbCritical, T: CTRL.SetFocus: Exit Sub
Next CTRL
'Si le User tente de change le nom de la ComboBox en Mode Modification
If Me.ComboBox1.ListIndex = -1 Then
MsgBox "Attention comme dans toute Base de Données, le Nom est la Clef de L'enregistrement" & vbCrLf & _
"Ce qui implique que vous ne pouvez pas Modifier cette Clef. " & vbCrLf & _
"Par conséquent pour un changement de Nom vous devez Supprimer l'enregistrement", vbCritical, T & " Warning System Integrity"
Exit Sub 'ON sort si pas de sélection
End If
'Ici une cascade de IF si les controls non pas été changés...
If Nom = ComboBox1 Then
If numéro = TextBox1 Then
If dateobt = TextBox2 Then
If recyclage = TextBox3 Then
MsgBox "Hé alors vous croyez que je ne vais pas voir que vous n'avez rien changé", vbCritical, T & " LOL LOL LOL !!!"
Exit Sub
End If
End If
End If
End If
'Ici un message demandant d'accepter les changement en les listant
Response = MsgBox("Les coordonnées de " & vbCrLf & vbCrLf & _
"Old Nom : " & vbTab & Nom & vbCrLf & _
"New Nom : " & vbTab & ComboBox1 & vbCrLf & vbCrLf & _
"Old numéro : " & vbTab & numéro & vbCrLf & _
"New numéro : " & vbTab & TextBox1 & vbCrLf & vbCrLf & _
"Old dateobt : " & vbTab & dateobt & vbCrLf & _
"New dateobt : " & vbTab & TextBox2 & vbCrLf & vbCrLf & _
"Old recyclage : " & vbTab & recyclage & vbCrLf & _
"New recyclage : " & vbTab & TextBox3 & vbCrLf & vbCrLf & _
"Acceptez vous ces changements ? ", vbQuestion + vbOKCancel, T & " Modification de : " & Nom)
'Si Réponse OK on continue
If Response = 1 Then
'ici avec la Feuille on va faire :
With WS
.Range("F" & Me.ComboBox1.ListIndex + 4) = ComboBox1 'On écrit dans chaque colonne les valeurs des différents controls
.Range("I" & Me.ComboBox1.ListIndex + 4) = TextBox1 'Idem
.Range("J" & Me.ComboBox1.ListIndex + 4) = TextBox2 'Idem
.Range("K" & Me.ComboBox1.ListIndex + 4) = TextBox3 'Idem
With worksheets("PSC1")
.Range("I" & Me.ComboBox1.ListIndex + 4) = TextBox1 'Idem
.Range("J" & Me.ComboBox1.ListIndex + 4) = TextBox2 'Idem
.Range("K" & Me.ComboBox1.ListIndex + 4) = TextBox3 'Idem
End With
End With
'On evoie un message de confirmation
MsgBox "Opération accomplie", vbInformation, T
Ini 'On lance la réinitialisation du UserForm (Macro en haut du Module)
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub