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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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!
<jacques-zeziola@wanadoo.fr> a écrit dans le message de news:5ee3abf8.0309061545.62d52b71@posting.google.com...
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
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
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):
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
<jacques-zeziola@wanadoo.fr> a écrit dans le message de news: 5ee3abf8.0309061545.62d52b71@posting.google.com...
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):
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):