Excel VBA erreur 1004

Résolu/Fermé
fapfapfap - 21 févr. 2012 à 14:35
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 16 févr. 2013 à 19:28
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
A voir également:

3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 21/02/2012 à 16:23
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.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
21 févr. 2012 à 16:32
De rien.

Ps : si c'est inutile, forcément.
Même sans voir la suite...
0
Et si j'avais, par exemple, besoin d'appliquer un format spécial à cette plage?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
21 févr. 2012 à 19:00
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
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
16 févr. 2013 à 19:28
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