Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur

2 réponses
Avatar
jacques-zeziola
Salut a toutes et tous

A l'aide d'un bouton je voudrais purger des bases de données, mais que
si celle-ci sont toutes avec au moins une ligne de données.

Voici les codes du boutons et du module avec une erreur dans le code
du bouton (Erreur de compilation, Tableau attendu):

Le bouton :

Private Sub CommandButton9_Click() 'Purge des bases de données

Dim WS As Variant, RG As Range
Dim Rempli As Byte
Dim msg As String
Dim reponse

For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"),
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"),
Worksheets("Tool_chansons"))
If Rempli(WS, 1, 2, 3) < 0 Then
If MsgBox("Toutes vos bases de données sont vides" & vbCrLf & vbCrLf &
"Veuillez d'abord les remplir !", vbCritical, "AVERTISSEMENT") Then
Sheets("Tool_Menu").Activate
Next WS
Sheets("Tool_acceuil").Activate
If reponse = vbNo Then Sheets("Tool_Menu").Activate

End If

End If

If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo
+ vbQuestion, "CONFIRMATION (Mise a zéro des bases de données)") =
vbYes Then
For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"),
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"),
Worksheets("Tool_chansons"))
Set RG = WS.Range(Cells(2, 1).Address, Cells(100, 4).Address)
RG.ClearContents
msg = msg & WS.Name & vbCrLf
Next WS
MsgBox "Données purgées pour les bases de données " & vbCrLf & msg
Set WS = Nothing
Set RG = Nothing
End If
End Sub

L'erreur est sur :

If Rempli(WS, 1, 2, 3) < 0 Then, avec Rempli en bleu

Code du modul :

Option Explicit
Function Rempli(WS As Variant, Lig As Byte, Col1 As Byte, NbCol As
Byte) As Byte
Dim i As Byte
Rempli = NbCol
With WS
For i = Col1 To NbCol + 1
If .Cells(256, i).End(xlUp).Row = Lig Then Rempli = Rempli + 1
Next i
End With
End Function

Qu'es-ce qui ne va pas?

Je vous ermercie toutes et tous par avance de vos suggestions, Jacques

2 réponses

Avatar
Denis Michon
Bonsoir Jacques,

Il serait bon que tu expliques ce que tu tentes d'accomplir. Le rôle de la fonction personnalisée dans ta procédure
d'ensemble. Je trouve difficile de corriger la procédure car je ne connais pas ce qu'elle doit accomplir. Et seulement à
partir du code que tu as publié... c'est très difficile de le déduire !!!


Salutations!


a écrit dans le message de news:
Salut a toutes et tous

A l'aide d'un bouton je voudrais purger des bases de données, mais que
si celle-ci sont toutes avec au moins une ligne de données.

Voici les codes du boutons et du module avec une erreur dans le code
du bouton (Erreur de compilation, Tableau attendu):

Le bouton :

Private Sub CommandButton9_Click() 'Purge des bases de données

Dim WS As Variant, RG As Range
Dim Rempli As Byte
Dim msg As String
Dim reponse

For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"),
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"),
Worksheets("Tool_chansons"))
If Rempli(WS, 1, 2, 3) < 0 Then
If MsgBox("Toutes vos bases de données sont vides" & vbCrLf & vbCrLf &
"Veuillez d'abord les remplir !", vbCritical, "AVERTISSEMENT") Then
Sheets("Tool_Menu").Activate
Next WS
Sheets("Tool_acceuil").Activate
If reponse = vbNo Then Sheets("Tool_Menu").Activate

End If

End If

If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo
+ vbQuestion, "CONFIRMATION (Mise a zéro des bases de données)") vbYes Then
For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"),
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"),
Worksheets("Tool_chansons"))
Set RG = WS.Range(Cells(2, 1).Address, Cells(100, 4).Address)
RG.ClearContents
msg = msg & WS.Name & vbCrLf
Next WS
MsgBox "Données purgées pour les bases de données " & vbCrLf & msg
Set WS = Nothing
Set RG = Nothing
End If
End Sub

L'erreur est sur :

If Rempli(WS, 1, 2, 3) < 0 Then, avec Rempli en bleu

Code du modul :

Option Explicit
Function Rempli(WS As Variant, Lig As Byte, Col1 As Byte, NbCol As
Byte) As Byte
Dim i As Byte
Rempli = NbCol
With WS
For i = Col1 To NbCol + 1
If .Cells(256, i).End(xlUp).Row = Lig Then Rempli = Rempli + 1
Next i
End With
End Function

Qu'es-ce qui ne va pas?

Je vous ermercie toutes et tous par avance de vos suggestions, Jacques
Avatar
Alain CROS
Bonjour.

Voici ton code corrigé pour qu'il n'y ai plus d'erreur de compilation.
Le problème venait du fait que Rempli était défini 2 fois.
1 fois as byte et 1 fois en tant que fonction.
+ 2 End If pas a la bonne place.

Alain CROS.

Private Sub CommandButton9_Click() 'Purge des bases de données
Dim WS As Variant, RG As Range
'Dim Rempli As Byte
Dim msg As String
Dim reponse

For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"), _
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"), _
Worksheets("Tool_chansons"))
If Rempli(WS, 1, 2, 3) < 0 Then
If MsgBox("Toutes vos bases de données sont vides" & vbCrLf & vbCrLf & _
"Veuillez d'abord les remplir !", vbCritical, "AVERTISSEMENT") Then
Sheets("Tool_Menu").Activate
End If
End If
Next WS
Sheets("Tool_acceuil").Activate
If reponse = vbNo Then Sheets("Tool_Menu").Activate

'End If
'
'End If

If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo _
+ vbQuestion, "CONFIRMATION (Mise a zéro des bases de données)") = _
vbYes Then
For Each WS In Array(Worksheets("Tool_dir"), Worksheets("Tool_prof"), _
Worksheets("Tool_grou"), Worksheets("Tool_danseurs"), _
Worksheets("Tool_chansons"))
Set RG = WS.Range(Cells(2, 1).Address, Cells(100, 4).Address)
RG.ClearContents
msg = msg & WS.Name & vbCrLf
Next WS
MsgBox "Données purgées pour les bases de données " & vbCrLf & msg
Set WS = Nothing
Set RG = Nothing
End If
End Sub

Function Rempli(WS As Variant, Lig As Byte, Col1 As Byte, NbCol As _
Byte) As Byte
Dim i As Byte
Rempli = NbCol
With WS
For i = Col1 To NbCol + 1
If .Cells(256, i).End(xlUp).Row = Lig Then Rempli = Rempli + 1
Next i
End With
End Function


a écrit dans le message de news:
Salut a toutes et tous

A l'aide d'un bouton je voudrais purger des bases de données, mais que
si celle-ci sont toutes avec au moins une ligne de données.

Voici les codes du boutons et du module avec une erreur dans le code
du bouton (Erreur de compilation, Tableau attendu):