Problème select range

Résolu
jissi - 18 oct. 2013 à 11:41
 jissi - 18 oct. 2013 à 15:04
Bonjour,
sur un code de gestion de base de donnée, je veux copier une ligne entière d'une feuille pour la coller dans une autre feuille que je viens de créer...

Le problème est que le code n'a pas l'air de fonctionner
j'ai l'erreur la méthode sélect de la classe range n'a pas fonctionné

voici le code en question

Sheets("LISTE").Select
Rows("1:1").Select
Selection.Copy
Sheets(BDD).Select
Rows("1:1").Select
ActiveSheet.Paste

avec BDD un string définit plus haut et qui reprend la valeur d'un textbox.

je suis preneur de toute solution !XD

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 18/10/2013 à 11:56
Bonjour,
il est impératif que tu apprennes à cesser de travailler à coups de select, selection.copy, etc ...
Excel est composé d'objets. On les utilise donc ===>> une seule ligne de code ===>>>
worksheets("LISTE).Rows(1).Copy Destination:=Worksheets(BDD).Range("A1")

Il faut bien évidemment que la variable Bdd soit accessible depuis le module où est ce code et que la chaîne de caractères qu'elle contient corresponde bien au nom d'une feuille existante.
0
Worksheets("LISTE").Rows(1).Copy Destination:=Worksheets(bdd).Range("A1")

incompatibilité de type à présent :/

ça commence à bien faire...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2013 à 13:08
Désolé pour toi, mais j'ai testé mon bout de code ===>> sans faille, hein ...
Et si "ça commence à bien faire...", cela veut dire que ta variable BDD n'est pas un string (comme tu l'affirmes dans ton message précédent) !
Je te laisse maintenant là, car je considère avoir terminé et parfaitement répondu.
Bonne chance.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 18/10/2013 à 13:20
et un réflexe de maternelle serait, après avoir créé une feuille nommée toto, de lancer le code suivant, si existe la feuille nommée LISTE dont on veut copier la ligne 1
bdd = "toto"
Worksheets("LISTE").Rows(1).Copy Destination:=Worksheets(bdd).Range("A1")

Réflexe vraiment exceptionnel ? tu crois ? ... ou plutôt : le minimum attendu ... hein ?
0
c'est bon ?
T'as finit ?
si tu veux tu peux te défouler, je pense que tu pourrais remplir des pages entières.
Qu'est ce qui fait dans ta vie que tu sois si enclin à laisser tes pulsions prendre le dessus sur ta personnalité ? Faut te ressaisir mon vieux t'es un homme pas un animal ! le self-Control tu connais ?
La violence ne sert a rien ici.
T'es pas vraiment pédagogue pour pas savoir que le mieux pour expliquer quelque chose à quelqu'un c'est pas de lui crier dessus et de le rabaisser mais qu'une explication calme suffit le plus souvent.

Mon erreur venait en effet de la déclaration du nom de ma nouvelle feuille.
celle-ci avait pris le nom que je lui avait attribué MAIS n'avait pas pris en compte qu'il s'agissait d'un STRING... ERREUR de ma part.

le fait que j'ai affirmé qu'il s'agissait d'un string était que dans le débuger, en passant le curseur au dessus de ma variable bdd, celle-ci m'affichait "Le_Nom_De_Ma_Nouvelle_Feuille" un texte évidemment. je ne suis pas allé jusqu'à m'imaginer que même si il était écrit un texte, il pouvait s'agir pour excel d'autre chose...
Bref.

Comme tu peux à présent le voir, j'ai mis que ce problème était RÉSOLUT
Je n'ai pas pris la peine de te remercier pour ton aide précieuse en voyant à quel point tu t'acharnais à me répondre mal.

Sur ce, bonne fin de vie.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2013 à 14:50
Bien,
Tu viens de gagner le droit de ne plus recevoir de réponse de ma part.
Cela m'évitera d'avoir à ... me "défouler".
Bonne continuation dans tes "démarches".
0
tu m'envoie navré
0
Rejoignez-nous