Suppression de plusieurs cellules erreur d'exécution '13

Bonjour,

J'ai réalisé une macro:

cette macro permet de d'enregistrer dans les colonnes AD, AE, AF et AG la première date lorsque je met le chiffre 1 dans les colonnes O, P, Q et R.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 15 And Target.Column <> 16 And Target.Column <> 17 And Target.Column <> 18 Then Exit Sub
Target.Offset(0, 11) = IIf(Target.Value = "", "", Target.Offset(0, 15))
Target.Offset(0, 15) = IIf(Target.Value = "", "", Date)
Target.Offset(0, 15) = IIf(Target.Value <> "", Target.Offset(0, 15).Value, "")
If Target.Offset(0, 11).Value = "" And Target.Offset(0, 16).Value <> "" Then
Target.Offset(0, 15).Value = Date
End If
If Target.Offset(0, 11).Value <> "" And Target.Offset(0, 15).Value <> "" Then
Target.Offset(0, 15).Value = Target.Offset(0, 11).Value
End If
End Sub

Mes problèmes sont les suivants:

  • Dans les colonnes l'une des colonnes O, P, Q et R, lorsque je sélectionne plusieurs cellule et je supprime les valeurs de ces cellules en même temps un bug survient :erreur d'exécution '13'
  • Lorsque je sélectionne une cellule et que je tire vers le bas pour recopier la même valeur j'ai la même erreur et je ne voie aucun résultat dans les colonnes AD, AE, AF et AG.
Merci.

ci joint le fichier.

13essai-date.xlsm (119.84 Ko)

Bonjour

Pour pouvoir sélectionner plusieurs cellules, ajoute en début de code

If Target.Count > 1 Then Exit Sub

Par contre, il te faut saisir cellule par cellule pour que le code fonctionne

Amicalement

Nad

Merci j'ai mis le code ça marche mais jai un autre problème, losque je tire par le bas je nai pas d'erreur mais le code ne sexécute passur sur les autres cellules qui recoivent les même valeurs que la cellule à partir de la laquelle jai tiré en bas. Et lorsque je supprime les cellulrs sélectionnées je voudrais que les cellules parallèles des colonnes AD, AE, AF, AG recoivent des valeurs vides.

Merci

Salut le Forum

Essaye avec cette macro

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, Cel As Range

    Set Plage = Target
    For Each Cel In Plage.Cells
        If Cel.Column > 14 And Cel.Column < 19 Then
            Cel.Offset(0, 11) = IIf(Cel.Value = "", "", Cel.Offset(0, 15))
            Cel.Offset(0, 15) = IIf(Cel.Value = "", "", Date)
            Cel.Offset(0, 15) = IIf(Cel.Value <> "", Cel.Offset(0, 15).Value, "")
            If Cel.Offset(0, 11).Value = "" And Cel.Offset(0, 16).Value <> "" Then
                Cel.Offset(0, 15).Value = Date
            End If
            If Cel.Offset(0, 11).Value <> "" And Cel.Offset(0, 15).Value <> "" Then
                Cel.Offset(0, 15).Value = Cel.Offset(0, 11).Value
            End If
        End If
    Next Cel
    Set Plage = Nothing

End Sub

Mytå

Merci pour ce code, mais j'ai un autre problème losque jexécute ce code en mettant une valeur dans une des cellules des colonnes. O, P, Q, R, je ne voie aucune date s'afficher. L'objectif de ce code est denregistrer la date de première saisi dans les cellules parallèles des colonnes AD, AE, AF, AG. Quand je met une valeur dans lune des cellules des colonnes O, P, Q, R, je voudrais que la date senregitre dans les cellules des autres colonnes. Et même si un autre jour je modifie la valeur que la premier date reste figée et ne doit recuperer la date de ce jour. Je veux figer la date de premiere saisi dune valeur meme si un autre jour je viens à modifier cette valeur.

Merci.

Re le Forum

C'est la même macro que tu avais mise dans ton fichier, la seule différence

c'est que maintenant elle accepte les sélections multiples.

Mytå

Bonjour Mytå,

Oui Elle accepte les sélections multiples mais je ne voie aucune valeur dans les cellules parallèles (AD, AE, AF, AG) aux cellules O, P, Q, R.

Je voudrais que lorsque je mets un nombre quelconque dans l’une des cellules de la colonne O (avec sélection multiple), avoir dans la cellule AD la date de saisi de ce nombre et cette date doit rester inchangé s’il viendrait à modifier ce nombre un autre jour.

De même si je mets un nombre dans les cellules P, Q, R, avoir le même résultat (enregistrer la date de saisi dans les cellules des colonnes AE, AF, AG et cette date doit rester inchangée s’il viendrait à modifier ce nombre un autre jour).

Je ne sais pas comment m’y prendre pour le faire, le premier code que j’avais fait marche mais il n permet pas la sélection multiple le code que vous m’avez proposé permet la sélection multiple mais aucune date ne s’affiche dans les cellules des colonnes voulues.

N’y a-t-il pas une solution.

Merci

Merci à vous Myta,

Votre code marche. J'avais un problème avec mon fichier excel, j'ai mis de l'ordre et votre code marche. Merci beaucoup. Encore merci.

Rechercher des sujets similaires à "suppression erreur execution"