Propriété ou méthode non gérée par cet objet

  • Initiateur de la discussion G'Claire
  • Date de début
G

G'Claire

Guest
Salut le forum

Voila, j'ai un code qui me permet de purger une base de donnée, mais j'aurai voulu l'utiliser pour purger plusieurs base de données en même temps, et cela me donne une erreur d'éxecution et en commentaire propriété ou méthode non gérer par cet objet, voici ce code modifié.

Private Sub CommandButton9_Click()
Dim WA As Worksheet, RG As Range
If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo, "CONFIRMATION") = vbYes Then
Set WA = ActiveSheet
Application.ScreenUpdating = False
With Sheets("Tool_grou") And ("Tool_Dir") And ("Tool_prof") And ("Tool_grou")
.Activate
Set RG = .Range(Cells(2, 1).Address, Cells(100, 4).Address)
If WorksheetFunction.CountA(RG) = 0 Then
MsgBox "personne sur la plage"
Else
RG.ClearContents
End If
End With
WA.Activate
Set WA = Nothing
Set RG = Nothing
End If
End Sub


La partie en jaune est ce bout de code.

With Sheets("Tool_grou") And ("Tool_Dir") And ("Tool_prof") And ("Tool_grou")

Je me douté que cela ne serai pas aussi simple pour appliquer ce code, pour purger en même temps ces base de données.

Je vous remercie de pouvoir m'éclairer, G'Claire et bon long Week-End
 
M

Minick

Guest
Salut,

Essai ca (sous reserve, j'ai pas essayé)

Private Sub CommandButton9_Click()
Dim WA As Worksheet, RG As Range
If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo, "CONFIRMATION") = vbYes Then
Set WA = ActiveSheet
Application.ScreenUpdating = False
Sheets(Array("Tool_grou", "Tool_Dir", "Tool_prof", "Tool_grou")).Select

Set RG = Range(Cells(2, 1).Address, Cells(100, 4).Address)
If WorksheetFunction.CountA(RG) = 0 Then
MsgBox "personne sur la plage"
Else
RG.ClearContents
End If

WA.Activate
Set WA = Nothing
Set RG = Nothing
End If
End Sub


@+
Minick
 
@

@+Thierry

Guest
Bonjour G'claire

on avait eu un problème similaire avec Ti il y a un bail pour Valérie... Moi je fais ceci par boucle sur tes feuilles :

Sub CommandButton9_Click()
Dim WS As Variant, RG As Range
Dim vide As Byte
Dim msg As String

If MsgBox("Voulez-vous mettre les bases de données a zéro ?", vbYesNo, "CONFIRMATION") = vbYes Then
For Each WS In Array(Worksheets("Feuil1"), Worksheets("Feuil2"), Worksheets("Feuil3"))
Set RG = WS.Range(Cells(2, 1).Address, Cells(100, 4).Address)
If WorksheetFunction.CountA(RG) = 0 Then
vide = vide + 1: msg = msg & WS.Name & vbCrLf
Else
RG.ClearContents
End If
Next WS
End If

If vide > 0 Then
MsgBox "Personne sur la plage pour Feuille " & vbCrLf & msg
End If
Set WS = Nothing
Set RG = Nothing
End Sub


Et donc je traite le msg en fin de macro pour éviter qu'il y en ait à chaque feuille...

Remets tes noms de feuilles Tool_Dir", "Tool_prof", "Tool_grou" (duplication d'ailleurs de ce nom "Tool_grou" dans tes instructions)

Bon Long Week end
@+Thierry
 
G

G'Claire

Guest
Salut le forum, @Thierry


En ce heure tardive, je te solicite une interrogation:

Dans ce code, que tu m'as modifièe es-ce normale que la procédure d'affichage des feuilles purgées ne se fassent que quand les feuilles sont vides, c'est a dire a partir de la deuxième purge?

Private Sub CommandButton9_Click()
Dim WS As Variant, RG As Range
Dim vide As Byte
Dim msg As String

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

Je te remercie de ton aide, et te souhaite une bonne nuit ainsi qu'a tout XLD
 
@

@+Thierry

Guest
Salut G'claire le Forum les Cette page n'existe plus

Huum pas claire ta question (?)

Qu'entends-tu par :
"la procédure d'affichage"

Il n'y a aucune "procédure d'affichage" (Sheets(x).Activate) dans ce code (?)

Si tu parles du Message de Fin, je ne me rappelle plus ce que tu voulais faire (!) là en tout cas c'est pour afficher les Feuilles qui ne contenaient pas de données ! (Vide = Vide + 1 si la Function est = 0)

En fait j'ai repris la même condition que toi avec ton "MsgBox "personne sur la plage avec cette chaleur (lol)"

Non, je saisis pas ta Question G'Claire (suis ptet faitigué par le Lien supprimé

@+Thierry
 
G

G'Claire

Guest
@Thierry, le forum et les wikies

Oui c'est bien du message de fin, il apparait bien mais pas quand je purge la première fois toutes mes feuilles, il apparait qu'au bout de la deuxième fois (Une fois que les feuilles sont purgées).

J'ai fait un test pour voir et en faite cela liste les feuilles deja purgées, je m'explique

Si j'ai feuille 1, feuille 2, feuille 3 avec des données et feuille 4 , feuille 5 sans données, au moment de la purge le message m'indiquera :

Données purgées pour les feuille 4 et feuille 5 les feuil 1, 2, 3 ne seront pas inscritent et pourtant les feuille sont purgées

Voila, j'espère que je suis plus claire

Merci a toi et a tout le forum, G'Claire
 

Discussions similaires

Statistiques des forums

Discussions
312 756
Messages
2 091 738
Membres
105 060
dernier inscrit
DEDJAN Gaston