Suppression de plusieurs cellules avec condition

skygoat76

XLDnaute Junior
Bonjour,

Mon problème est le suivant:
J'ai tapé un bout de code pour écrire l'année + le numéro de semaine dans une cellule quand la date est tapée:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim annee, semaine As String

    If Target.Column = 11 Then
        If Target = "" Then
            Cells(Target.Row, 14) = ""
        Else
            annee = Right(Str(Format(Cells(Target.Row, 11).Value, "yyyy")), 2)
            semaine = Str(DatePart("ww", Target, 2, 2))
            If CInt(semaine) >= 10 Then
                Cells(Target.Row, 14) = CInt(annee + semaine)
            Else
                Cells(Target.Row, 14) = CInt(annee + "0" + semaine)
            End If
        End If
    End If

End Sub

Concrètement, si on tape 29/06/09 dans la colonne K, on obtient 927 dans la colonne N. Si je supprime une date en colonne K, la semaine est également supprimée.

Le problème est que si je supprime une sélection de date (exemple de K1 à K3), ma macro plante

une idée?
 

Pièces jointes

  • Suppression_cells.xls
    23 KB · Affichages: 44
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Suppression de plusieurs cellules avec condition

Bonjour,

essaie ainsi :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim annee, semaine As String
Dim Cel As Range
If Target.Column = 11 Then
    Application.EnableEvents = False
    If Target.Count = 1 Then
        If Target = "" Or IsEmpty(ActiveCell.Value = "") = True Then
            Cells(Target.Row, 14) = ""
        Else
            annee = Right(Str(Format(Cells(Target.Row, 11).Value, "yyyy")), 2)
            semaine = Str(DatePart("ww", Target, 2, 2))
            If CInt(semaine) >= 10 Then
                Cells(Target.Row, 14) = CInt(annee + semaine)
            Else
                Cells(Target.Row, 14) = CInt(annee + "0" + semaine)
            End If
        End If
    Else
        If Application.CountA(Target) = 0 Then
            For Each Cel In Target
                Cells(Cel.Row, 14) = ""
            Next Cel
        End If
    End If
End If
Application.EnableEvents = True
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
312 520
Messages
2 089 290
Membres
104 088
dernier inscrit
said4u