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 :

assigner macro à tableau [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut assigner macro à tableau
    Bonjour,


    Avant toute chose j'utilise excel 2010.

    J'ai un tableau réunissant des stocks de livres et j'aimerais, à l'aide d'une macro rattachée à ce tableau, pouvoir ajouter/supprimer des ouvrages dans le tableau.

    Ce qui me pose problème est le rattachement du tableau à la macro: comment faire en sorte que les deux soient liés (exemple: que je puisse entrer un ouvrage, son auteur et son prix à l'aide de la macro et que l'ouvrage se rajoute à la fin du tableau ensuite)?

    Le code assigné à la macro est pour le moment celui-ci:



    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
    31
    Private Sub CommandButton1_Click()
    Sheets("stock").Select
     
    Range("B5").Select
     
    Do
    If ActiveCell.Value = "" Then
    GoTo archiver
    End If
     
    If ActiveCell.Value <> "" Then
    ActiveCell.Offset(1, 0).Select
    End If
     
    Loop Until ActiveCell.Value = ""
     
    archiver:
    ActiveCell.Value = Nouvelle_Commande!TextBox1
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Nouvelle_Commande!TextBox2
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Val(Nouvelle_Commande!TextBox3)
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Val(Nouvelle_Commande!ComboBox1)
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = Val(Nouvelle_Commande!TextBox4)
     
    Nouvelle_Commande.Hide
    Sheets("Stock").Select
     
    End Sub


    Cordialement.

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    La ligne ci dessous permet de seléctionner la cellule Bx ou x correspond a la ligne devant contenir la nouvelle entrée de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & Range("B:B").End(xlDown).Row + 1).Select
    Jérôme

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Merci, je vais tenter de reformuler la macro

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour, Faradeorn, jfontaine,
    Effectivement comme te l'as dit jfontaine pas besoin d'une boucle pour trouver la dernière ligne vide de ton tableau, la ligne de code qu'il ta donnée la trouve. Toutefois evite les select qui ralentissent le code et remplace "nouvelle_commande!Textbox1" par "nouvelle_commande.Textbox1".
    Ton code pourrais ressembler à ceci après modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Sheets("Stock").Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Select
     
    ActiveCell.Value = Nouvelle_Commande.TextBox1.Value
    ActiveCell.Offset(0, 1).Value = Nouvelle_Commande.TextBox2.Value
    ActiveCell.Offset(0, 2).Value = Nouvelle_Commande.TextBox3.Value
    ActiveCell.Offset(0, 3).Value = Nouvelle_Commande.ComboBox1.Value
    ActiveCell.Offset(0, 4).Value = Nouvelle_Commande.TextBox4.Value
     
    Nouvelle_Commande.Hide
    Sheets("Stock").Select
    End Sub
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Merci de la réponse

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

Discussions similaires

  1. Assigner un tableau C à un std::vector
    Par cob59 dans le forum SL & STL
    Réponses: 10
    Dernier message: 24/06/2009, 12h35
  2. Déclarer et assigner un tableau de points
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 17/08/2008, 11h45
  3. assigner macro à un bouton via VBA
    Par ouioui_cmoi dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/03/2008, 15h02
  4. assigner un tableau 2D sur un pointeur
    Par ded jay dans le forum C++
    Réponses: 16
    Dernier message: 05/07/2007, 14h40
  5. []assigner 1 tableau à 1 autre tableau
    Par User dans le forum Général VBA
    Réponses: 13
    Dernier message: 09/11/2005, 14h06

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