Excel VBA erreur 1004

Résolu
Bonjour,

Voici une partie de la macro que je réalise en ce moment. Lors de l'exécution, la macro plante à la dernière ligne alors qu'il s'agit d'une banale sélection de plage (erreur 1004)

---------------

Range("P3").Select
Selection.ClearContents

Dim DrLig As Long
With Sheets("Reporting détaillé")

DrLig = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Rows(DrLig & ":" & Rows.Count).Delete
End With
Range("N5:0200").Select
End sub

-------------------

Comment corriger l'erreur svp??

Merci d'avance

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,
    Plusieurs solutions :
    1- ne pas mettre cette ligne qui est de toutes manières inutile :
    Range("N5:0200").Select

    2- remplacer le zéro par un o (en gras) :
    Range("N5:O200").Select

    Cordialement,
    Franck P
    1. oups merci =)

      ps: non ce n'est pas inutile...pour la suite.
    2. Modérateur
      De rien.

      Ps : si c'est inutile, forcément.
      Même sans voir la suite...
    3. Et si j'avais, par exemple, besoin d'appliquer un format spécial à cette plage?
  2. Modérateur
    Alors, par exemple pour le format.
    Si tu n'as qu'une ligne de code pour "formater" tes cellules, en exemple : fond de cellule rouge :
    Range("N5:O200").Interior.ColorIndex = 3

    Si tu as plusieurs paramètres à changer, exemple : gras, fond bleu, couleur police rouge :
    With Range("A1:F5")
        .Font.Bold = True
        .Interior.ColorIndex = 32
        .Font.ColorIndex = 3
    End With

    Aucun Select et cela tourne sans souci.
    1. Ah merci je ne savais pas, intéressant!

      Mais bref, en fait la plage en question contient des chiffres mais qui sont considérés comme du texte, cf un de mes anciens postes toujours non résolu:

      http://www.commentcamarche.net/forum/affich-24466739-vba-convertir-texte-en-nombre

      je garde donc le .select à la fin de ma macro pour n'avoir qu'à cliquer sur le triangle vert d'erreur puis "convertir en nombre" pour l'ensemble de la plage.
      Idéalement j'aimerais que ma macro corrige l'erreur automatiquement...mais aucune méthode viable pour l'instant..

      Si vous avez une idée, votre aide sera grandement appréciée!!

      merci
  3. Contributeur
    Bonjour,

    je garde donc le .select à la fin de ma macro pour n'avoir qu'à cliquer sur le triangle vert d'erreur puis "convertir en nombre" pour l'ensemble de la plage.
    Idéalement j'aimerais que ma macro corrige l'erreur automatiquement...mais aucune méthode viable pour l'instant..

    [E1].Copy ' E1 est une cellule vide
    Range("A1:A10").PasteSpecial Operation:=xlAdd


    ericS'il n'y a pas d'espaces intempestifs ni de code 160