IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro en excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut macro en excel
    Bonjour,

    J'ai écrit une macro en excel qui voudrait dans une feuille choisir un nombre déterminé de lignes et les copier dans une seconde feuille Excel.
    Pour ce faire après les initialisations indispensables le code suivant me recopie toujours la première ligne.
    Voici ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for i=1 to 10 {je désire copier 10 lignes de la feuille :je choisis la ligne désirée}
         x=inputbox("Donner le N° de ligne") {'par exemple 3'}
         {'x étant de type string je le convertis en byte'}
         y=cbyte(x) {'y est donc de type byte'}
         cells(y,1).select {la ligne y  devrait être 3'}
         nom=cells(y,1).value
         cells(y,2).select
         ville=cells(y,2).value
    next i
    Mon problème c'est que mon choix de ligne est inopérant et c'est toujours la ligne 1 qui est copiée quelle que soit la valeur donnée à x.
    En utilisant le pas à pas je constate que le x a la valeur en string demandée soit 3 mais elle ne se reporte pas dans cbyte(x) qui a toujours la valeur 1

    Quelle est donc mon erreur? Probablement dans l'affectation de la variable x par "inputbox" ?
    Car si je veux recopier les 10 premières lignes dans une boucle FOR ,
    les 10 premières lignes sont effectivement recopiées.

    Merci aux personnes qui se pencheront sur ce problème et me signaleront l'astuce pour réaliser ce que je désire

    Rogerone

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Salut!
    C'est bizarre, ton histoire de y qui vaut 1.
    Je viens de tester ton code, et il fonctionne. Bon, c'est pas rigolo de répondre 10 fois à la question de l'inputbox, mais y prend bien la valeur saisie. Et ça, sans donner le type de x ou de y...
    Essaie de définir y comme un Integer, pour voir.
    Sinon, les SELECT des cellules ne servent à rien, le stockage du contenu dans les variables seules suffit. Par contre, n'oublie pas de faire précéder les "cells(ligne, colonne)" de l'onglet (voire du classeur) où elles se trouvent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks("MonClasseur.xls").WorkSheets("Onglet1").Cells(x,y).Value = ...
    Et tu ne réaffectes pas ces valeurs dans les cellules de ton nouvel onglet? C'est pour plus tard, c'est ça?[/code]

Discussions similaires

  1. Graphe et Macro et Excel et VBA
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 18/11/2005, 17h24
  2. Activation des macros sous Excel
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2005, 11h44
  3. macro sous excel
    Par julien13200 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2005, 15h49
  4. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 07h51
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo