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 :

[VBA-Excel]Insertion d'une copie de plage de données dans une boucle Do while


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA-Excel]Insertion d'une copie de plage de données dans une boucle Do while
    Bonjour à tous,

    Après recherche sur le forum, je n'ai pas réussi à faire tourner cette petite macro comme je le souhaitais.

    Je souhaite utiliser cette boucle pour coller automatiquement des données (une plage) d'une autre feuille Excel (du même fichier) à partir de la première cellule vide (afin de ne pas écraser les données précédente).

    J'arrive à détecter la première cellule vide, à y écrire du texte mais pas à y coller les données. (à l'endroit du Paste)

    Auriez-vous une Solution?

    Ci-joint la macro.

    Cdt
    Eltran1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Macro6()
     
     
    Dim Compteur As Integer
     
    Dim Cel As Range
     
    'On affecte la cellule "C7" à la variable Cel
     
    Set Cel = Range("C7")
     
    Compteur = 1
     
    'Le bloc d'instruction suivant va se répéter
     
    'tant que la cellule n'est pas vide
     
    Do While Cel.Offset(Compteur) <> ""
     
        'Ne pas oublier d'incrémenter le compteur sinon
     
        'la boucle ne pourra pas s'arrêter.
     
        Compteur = Compteur + 1
     
    Loop
     
    Cel.Offset(Compteur) = "Paste"
     
    End Sub

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Dans ton code, je ne vois pas quand tu sélectionnes la plage à copier

    Je propose le code suivant, sans boucle pour rechercher la cellule vide en C, car il y a plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim Cellule as range
    dim PlageCopiee as range
     
    set plagecopiee=worksheets("Feuillesource").range("...") ' on détermine la plage source
    ' on cherche la cellule qui suit la dernière cellule
    ' remplie en C
    set cellule =worksheets("FeuilleCible").range("c65536").end(xlup)(2)
    plagecopiee.copy destination:=cellule
    Je n'ai pas testé, mais cela devrait fonctionner

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ok merci. Je vais tester.

    Effectivement je n'ai pas inséré la partie du code où la copie s'effectue. Je vais déjà essayer avec ça .

    Edit : oui ça marche.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2014, 08h41
  2. Réponses: 2
    Dernier message: 22/05/2014, 11h10
  3. Réponses: 2
    Dernier message: 19/05/2010, 16h20
  4. Réponses: 1
    Dernier message: 20/09/2007, 18h59
  5. Réponses: 9
    Dernier message: 03/09/2006, 23h25

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