Excel VBA erreur 1004

Résolu
fapfapfap -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. fapfapfap
       
      oups merci =)

      ps: non ce n'est pas inutile...pour la suite.
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      De rien.

      Ps : si c'est inutile, forcément.
      Même sans voir la suite...
      0
    3. fapfapfap
       
      Et si j'avais, par exemple, besoin d'appliquer un format spécial à cette plage?
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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.
    0
    1. fapfapfap
       
      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
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0