Range(...).Select -> Erreur 400

FloreR

XLDnaute Nouveau
Bonjour à tous,

Je dispose d'une base de données dans un onglet de mon fichier excel. J'ai créé une macro qui me permet de recopier dans un autre onglet les seules lignes de cette base de données avec lesquelles je veux effectuer mon calcul (et qui ont auparavant été sélectionnées à l'aide d'un "X" dans la colonne indiquée pour). (Genre, en tout, j'ai 558 lignes renseignées, et je peux en sélectionner autant que je veux.)

Selon le nombre de données avec lesquelles je veux travailler (entre 1 et 558), mon second onglet va présenter un nombre de lignes "remplies" plus ou moins élevé. Je dois donc lui faire insérer des lignes, ou en supprimer, en fonction du cas précédent de calcul. Ca, ce n'est pas un problème.

Ce qui m'embête, c'est que, une fois que j'ai ajouté ou supprimé le nombre de lignes qu'il me faut et que j'ai tout recopié, ma "mise en page" est un peu "abîmée"... En gros, l'insertion et la suppression de lignes n'a pas respecté les bordures de cellules que j'avais mises en place, et je veux rattraper le coup en toute fin de macro. (J'avais créé un truc qui le faisait automatiquement à chaque insertion de ligne, mais c'était beaucoup trop lourd, et en plus, ça faisait potentiellement 557 fois un travail qui était effacé au coup suivant...)

Donc tout simplement, j'ai tenté le code suivant :

Sheets("Minéraux retenus").Range(Cells(7, 5), Cells(j - 3, 7)).Select
'With Selection.Borders(xlEdgeLeft)
'.LineStyle = xlContinuous
'.ColorIndex = xlAutomatic
'.TintAndShade = 0
'.Weight = xlThin
etc etc, avec tout ce qu'il me faut pour faire une belle mise en page.

(NB : j est un curseur défini auparavant dans la macro, et qui est lié au nombre de lignes que j'ai recopiées de ma base de données.)

Mais ça ne marche pas ! :-(
J'ai testé en mode pas-à-pas, et l'erreur vient de la ligne Range(...).Select
Comme j'ai déjà utilisé la même grammaire pour un autre code qui tourne (lui !), je ne vois vraiment pas où se trouve le problème...

Merci d'avance pour votre aide !
 

Pierrot93

XLDnaute Barbatruc
Re : Range(...).Select -> Erreur 400

Bonjour,

essaye peutêtre comme ceci :
Code:
With Sheets("Minéraux retenus")
    .Range(.Cells(7, 5), .Cells(j - 3, 7)).Select
End With

Attention, la feuille "Sheets("Minéraux retenus")" doit être active...

bon après midi
@+
 

job75

XLDnaute Barbatruc
Re : Range(...).Select -> Erreur 400

Bonjour FloreR, salut Pierrot,

Pour sélectionner un Range, il faut que sa feuille soit activée...

Code:
With Sheets("Minéraux retenus")
    .Visible = True 'si besoin est...
    .Activate
    .Range(.Cells(7, 5), .Cells(j - 3, 7)).Select
End With
ou aussi :

Code:
With Sheets("Minéraux retenus")
    .Visible = True 'si besoin est...
    Application.Goto .Range(.Cells(7, 5), .Cells(j - 3, 7))
End With

A+
 

FloreR

XLDnaute Nouveau
Re : Range(...).Select -> Erreur 400

YES ! Ca marche !!!

Merci !!! :)

Mais encore une question : pourquoi mon code plantait-il ? (Alors que, je répète, la même syntaxe fonctionne dans une autre macro...)

Des fois, j'ai vraiment du mal à comprendre comment fonctionne excel...
 

FloreR

XLDnaute Nouveau
Re : Range(...).Select -> Erreur 400

Merci pour vos réponses !

La feuille "Minéraux retenus" était bien activée : c'est la première ligne de mon code : Sheets("Minéraux retenus").Activate

Par contre, je pense que le problème, comme tu le dis, Pierrot, vient du fait que ma macro est enregistrée dans un module qui ne correspond pas à la feuille dans laquelle je sélectionnais le range.

En fait, je m'aperçois ainsi que je ne maîtrise pas du tout ces fameux "modules" et autres "userform", "workbook"... enfin, bref tout ce qui se trouve dans la petite fenêtre en haut à gauche de VBA... En général, je laisse mes codes là où ils sont mis par défaut, mais quand je crée une macro, généralement, je place le code un peu au pif... D'où, peut-être, mon problème de tout-à-l'heure ? Si vous avez deux trois conseils à me donner là-dessus, je suis intéressée.

Merci encore une fois !
 

Discussions similaires

Réponses
6
Affichages
375
Réponses
13
Affichages
187

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha