OVH Cloud OVH Cloud

appel de procédures conditionné à une variable

1 réponse
Avatar
Markos
Bonjour toutes et tou,

J'essais différente solutions pour appeller une procédure en fonction de
conditions issus des selections d'un UserForm.
Rien ne marche > ERREUR : " erreur d'exécution '13' : incompatibilité de
type "
alors que si je les appelle sans passer par le test conditionnel tout
fonctionne (c'est à dire en appelant directement "SaveTab_A".

Command faire pour appeler 4 procédures en fonction de la valeurs d'une zone
de texte ?

Private Sub CmdValider_Click()

If TxtTypeTableau = "Tableau A" Then
GoTo A ' un des essais
ElseIf TxtTypeTableau = "Tableau B" Then
Call SaveTab_B '2ème
essais
ElseIf TxtTypeTableau = "Tableau C"
Then GoTo C
Else: Call CréerEntréeTab_D(TxtDateAction.Value, TxtMoisD.Value,
TxtNbJoursD.Value, ...) '3ème essais
End If

A: Call CréerEntréeTabA(TxtLieu.Value, TxtDateAction.Value,
TxtNbPersonnes.Value, ...) >>> ERREUR
....
End Sub


Private Sub SaveTab_A()
On Error Resume Next
Application.StatusBar = "Ajout d'un nouvelle Action. Veuillez
patienter..."
Application.Cursor = xlWait

Call CréerEntréeTabA(TxtLieu.Value, TxtDateAction.Value,
TxtNbPersonnes.Value, ...)

Application.Cursor = xlDefault
Application.StatusBar = ""
End Sub

Public Sub CréerEntréeTabA(Lieu As String, DateAction As Date, ...)
' affecte les valeurs du menu à la dernière ligne du tableau A
Sheets("Tableau A").Select

Dim LigneAjout As Integer
'On Error Resume Next
LigneAjout = Range("C5").End(xlDown).Row + 1
Range("C" & LigneAjout).Value = DateAction
Range("D" & LigneAjout).Value = TC
Range("E" & LigneAjout).Value = Entrée
Range("F" & LigneAjout).Value = Secteur
End Sub

Merci.

1 réponse

Avatar
isabelle
bonjour Markos,

Select Case TxtTypeTableau.Value

Case "Tableau A"
Call CréerEntréeTabA(TxtLieu.Value, TxtDateAction.Value,
TxtNbPersonnes.Value)

Case "Tableau B"
Call SaveTab_B

Case "Tableau C"
Call SaveTab_C

Case Else:
Call CréerEntréeTab_D(TxtDateAction.Value, TxtMoisD.Value,
TxtNbJoursD.Value)

End Select

isabelle


Bonjour toutes et tou,

J'essais différente solutions pour appeller une procédure en fonction de
conditions issus des selections d'un UserForm.
Rien ne marche > ERREUR : " erreur d'exécution '13' : incompatibilité de
type "
alors que si je les appelle sans passer par le test conditionnel tout
fonctionne (c'est à dire en appelant directement "SaveTab_A".

Command faire pour appeler 4 procédures en fonction de la valeurs d'une zone
de texte ?

Private Sub CmdValider_Click()

If TxtTypeTableau = "Tableau A" Then
GoTo A ' un des essais
ElseIf TxtTypeTableau = "Tableau B" Then
Call SaveTab_B '2ème
essais
ElseIf TxtTypeTableau = "Tableau C"
Then GoTo C
Else: Call CréerEntréeTab_D(TxtDateAction.Value, TxtMoisD.Value,
TxtNbJoursD.Value, ...) '3ème essais
End If

A: Call CréerEntréeTabA(TxtLieu.Value, TxtDateAction.Value,
TxtNbPersonnes.Value, ...) >>> ERREUR
....
End Sub


Private Sub SaveTab_A()
On Error Resume Next
Application.StatusBar = "Ajout d'un nouvelle Action. Veuillez
patienter..."
Application.Cursor = xlWait

Call CréerEntréeTabA(TxtLieu.Value, TxtDateAction.Value,
TxtNbPersonnes.Value, ...)

Application.Cursor = xlDefault
Application.StatusBar = ""
End Sub

Public Sub CréerEntréeTabA(Lieu As String, DateAction As Date, ...)
' affecte les valeurs du menu à la dernière ligne du tableau A
Sheets("Tableau A").Select

Dim LigneAjout As Integer
'On Error Resume Next
LigneAjout = Range("C5").End(xlDown).Row + 1
Range("C" & LigneAjout).Value = DateAction
Range("D" & LigneAjout).Value = TC
Range("E" & LigneAjout).Value = Entrée
Range("F" & LigneAjout).Value = Secteur
End Sub

Merci.