Pierr0o
Messages postés18Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention 3 avril 2007
-
3 avril 2007 à 10:37
BLUEBIBUBBLE
Messages postés116Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention10 avril 2013
-
3 avril 2007 à 15:43
Bonjour, j'ai un petit problème concernant un select case.
En fait je veux effacer des données dans chaque feuille, à des endroits précis et pas forcément les mêmes suivant les feuilles.
Voici mon code:
Sub test()
Dim Feuille As Object
Dim nb As Long
For Each Feuille In Worksheets
Select Case Feuille.Name
Case "4021"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 6)).ClearContents
Case "4022"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 6)).ClearContents
Case "4023"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 5)).ClearContents
Case "AVCBT"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 5)).ClearContents
Case "419100"
Range("C5:E5").Select
Selection.ClearContents
Case "419CIES"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 5)).ClearContents
Case "4025"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 5)).ClearContents
Case "4026"
nb = 4
While Cells(nb, 1).Value <> ""
nb = nb + 1
Wend
Range("c4", Cells(nb, 5)).ClearContents
Case "SAGE"
Cells.Select
Selection.ClearContents
Case "WIN_4021"
Cells.Select
Selection.ClearContents
Case "WIN_4022"
Cells.Select
Selection.ClearContents
End Select
Next
le problème est que quand j'exécute la macro, toute les données de la feuille disparait, y compris mon tableau, comme si j'avais fais pour chaque feuille un Selection.ClearContents.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 3 avril 2007 à 11:04
Salut,
Un petit peu de simplification d'écriture....
Sub test()
'Si on sait que Feuille est Worksheet
'Pourquoi la déclarer en object?
Dim Feuille As Worksheet
Dim nb As Long
For Each Feuille In Worksheets
Select Case Feuille.Name
Case "4021", "4022"
Call Feuille.Activate
nb = 4
While Feuille.Range("A" & CStr(nb)).Value <> vbNullString
nb = nb + 1
Wend
Call Feuille.Range("C4", Cells(nb, 6)).ClearContents
Case "4023", "AVCBT", "419CIES", "4025", "4026"
Call Feuille.Activate
nb = 4
While Feuille.Range("A" & CStr(nb)).Value <> vbNullString
nb = nb + 1
Wend
Call Feuille.Range("C4", Cells(nb, 5)).ClearContents
Case "419100"
Call Feuille.Activate
Call Feuille.Range("C5:E5").ClearContents
Case "SAGE", "WIN_4021", "WIN_4022"
Call Feuille.Activate
Feuille.Cells.ClearContents
End Select
Next
End Sub , ----
[code.aspx?ID=41455 By Renfield]
BLUEBIBUBBLE
Messages postés116Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention10 avril 20131 3 avril 2007 à 15:43
Tu as surement raison Drikce06, mais j'ais souvenir qu'un case else manquant faisait planter l'exe (c'était probablement sur une ancienne version VB voir QB, mais depuis je me méfie...)