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 :

[Excel 2010] Etendre les lignes selon le nombre de lignes d'une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut [Excel 2010] Etendre les lignes selon le nombre de lignes d'une autre feuille
    Bonjour à tous,

    Débutant en VBA, même après avoir bien cherché, je n'arrive pas à créer une macro permettant de compter le nombre de lignes pleines d'une base de données située sur une feuille A afin de déterminer de combien de lignes la macro doit étendre les lignes sur un feuille B (lignes composées uniquement de formules dans la feuille B me permettant de retraiter les informations figurant dans la base de données).

    Est-ce que quelqu'un saurait m'aider ?

    A votre disposition si vous avez besoin de plus de détails.

    Merci beaucoup.

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Utilises la fonction range(a, b).end(xlup).row pour connaitre ton nombre de lignes non vides de ton formulaire.
    Ensuite, tu as plusieurs options pour l'ajout de tes lignes :
    - un Insert
    - un copy
    - une écriture en brute de tes lignes

    A toi de voir

    Cordialement,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour Gado,

    Pour la fonction range(a, b).end(xlup).row (qui comptera les lignes de ma feuille A), comment puis-je l'intégrer à ma macro pour faire descendre les lignes du nombre correspondant dans la feuille B ?

    Dois-je définir une variable ?

    Les formules seront systématiquement les mêmes et seront situées sur la première ligne de la feuille B, est-ce que tu saurais quelle commande utiliser pour descendre les lignes ?

    Comment intégrer ma variable à la commande ?

    Merci pour ton aide précieuse et bonne journée !

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Oui, il te faut intégrer cette fonction dans une variable. En tout cas, c'est mieux pour pouvoir réaliser des calculs avec et pouvoir faire des tests rapidement.

    Ensuite, pour tes lignes, je ne connais pas les formules que tu appliques mais j'ai listé 3 méthodes qui te permettra de les insérer. A toi de déterminer laquelle est la meilleure pour ce que tu cherches à faire.

    Tu as aussi l'enregistreur de macro sur Excel, si tu veux connaitre en VBA, ce que tu peux faire manuellement (attention ! les codes générés ne sont pas fiables à 100% mais cela aide)

    cordialement,

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Gado,

    C'est parti pour les tests

    Merci encore !

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    si les données sont contigües, voir aussi du côté des propriétés CurrentRegion, Rows et Count

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai trouvé la solution, je viens donc la partager avec les autres utilisateurs, en cas de besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Dim Variable1 As Long
    Sheets("Feuil1").Activate
    Variable1 = Range(Range("A2", Range("A" & Rows.Count).End(xlUp)).Address).Count
    Sheets("Feuil2").Activate
    Range("A2:F2").AutoFill Destination:=Range("A2:F" & Variable1)
    End Sub
    Bonne journée !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/03/2015, 16h32
  2. Réponses: 6
    Dernier message: 02/05/2014, 15h30
  3. Réponses: 3
    Dernier message: 06/03/2014, 12h42
  4. Réponses: 0
    Dernier message: 25/05/2009, 17h05
  5. Réponses: 15
    Dernier message: 09/06/2006, 12h13

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