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 :

Redimensionner et ajoutes des valeurs à un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut Redimensionner et ajoutes des valeurs à un tableau
    Bonjour,
    J'ai créer un tableau vide pour le moment.
    J'ai aussi créer un bouton click, celui-ci m'ouvre une input box ou je récupère plusieurs valeurs taper.
    Je souhaiterais que suite à celui, mon tableau ajouter une ligne puis ce remplisse avec les valeurs préciser.

    Voici le code de mon bouton_click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Ajout_Contact_Click()
    'récupération des informations du contact
    'NomContact = InputBox("Entrer le nom du contact", "Nom du Contact")
    'PrenomContact = InputBox("Entrer le prénom du contact", "Prénom du Contact")
    'TelContact = InputBox("Entrer le téléphone du contact", "Téléphone du Contact")
    'MailContact = InputBox("Entrer le mail du contact", "Mail du Contact")
    'SociétéContact = InputBox("Entrer la société du contact", "Société du Contact")
    'FonctionContact = InputBox("Entrer la fonction du contact", "Fonction du Contact")
     
    End Sub
    Je ne voit pas quel fonctions, il faut utiliser pour faire le reste.

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Lilo, bonjour le forum,

    Franchement, j'opterai pour une UserForm dans ce cas. Mais je suis resté dans ton exemple sauf que, si une boîte d'entrée n'est pas renseignée, la procédure s'arrête. À tester...

    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
    32
    Private Sub Ajout_Contact_Click()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim nomcontact As Variant 'déclare la variable nomcontact
    Dim PrenomContact As Variant 'déclare la variable PrenomContact
    Dim TelContact As Variant 'déclare la variable TelContact
    Dim MailContact As Variant 'déclare la variable O MailContact
    Dim SociétéContact As Variant 'déclare la variable SociétéContact
    Dim FonctionContact As Variant 'déclare la variable FonctionContact
    Dim LI As Integer 'déclare la variable LI (LIgne)
     
    Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
    'récupération des informations du contact
    nomcontact = Application.InputBox("Entrer le nom du contact", "Nom du Contact", Type:=2)
    If nomcontact = False Then Exit Sub 'sort de la procédure si non renseigné
    PrenomContact = Application.InputBox("Entrer le prénom du contact", "Prénom du Contact", Type:=2)
    If PrenomContact = False Then Exit Sub 'sort de la procédure si non renseigné
    TelContact = Application.InputBox("Entrer le téléphone du contact", "Téléphone du Contact", Type:=1)
    If TelContact = False Then Exit Sub 'sort de la procédure si non renseigné
    MailContact = Application.InputBox("Entrer le mail du contact", "Mail du Contact", Type:=2)
    If MailContact = False Then Exit Sub 'sort de la procédure si non renseigné
    SociétéContact = Application.InputBox("Entrer la société du contact", "Société du Contact", Type:=2)
    If SociétéContact = False Then Exit Sub 'sort de la procédure si non renseigné
    FonctionContact = Application.InputBox("Entrer la fonction du contact", "Fonction du Contact", Type:=2)
    If FonctionContact = False Then Exit Sub 'sort de la procédure si non renseigné
    LI = IIf(O.Range("A1") = "", 1, O.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1) 'définit le ligne LI
    O.Cells(LI, "A").Value = UCase(nomcontact) 'renvoie le nom (en majuscules) dans la colonne A
    O.Cells(LI, "B").Value = Application.WorksheetFunction.Proper(PrenomContact) 'renvoie le prénom (première lettre en majuscule) dans la colonne B
    O.Cells(LI, "C").Value = Format(TelContact, "0#"" ""##"" ""##"" ""##"" ""##") 'renvoie le numéro de téléphone au bon format dans la colonne C
    O.Cells(LI, "D").Value = MailContact 'renvoie l'email dans la colonne D
    O.Cells(LI, "E").Value = UCase(SociétéContact) 'renvoie la société (en majuscules) dans la colonne E
    O.Cells(LI, "F").Value = Application.WorksheetFunction.Proper(FonctionContact) 'renvoie la fonction (première lettre en majuscule) dans la colonne F
    End Sub

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Déjà, je ne comprends pas ta démarche : une suite d'InputBox, c'est BEAUCOUP moins ergonomique que la saisie directement dans des cellules.
    Avant de se lancer dans ce type de codage, il faut se poser une question toute simple : est-ce que c'est vraiment utile ? Est-ce que ça apporte réellement quelque chose en plus ?

    Au pire, il faudrait que tu remplaces cette série de InputBox par un UserForm.
    Lire ça : http://silkyroad.developpez.com/VBA/UserForm/

    Je souhaiterais que suite à celui, mon tableau ajouter une ligne.
    Quand tu parles de "Tableau", est-ce un vrai tableau structuré au sens où l'entend Excel ou simplement de données rangées en colonnes ?
    Si c'est le second cas, il n'y a rien besoin de faire pour "ajouter" une ligne. Il suffit de placer tes données au delà de la dernière ligne renseignée.
    Pour trouver la dernière ligne renseigner, utilise la propriété End de Range : https://msdn.microsoft.com/fr-fr/lib...9(v=office.15)

    Pour savoir comment mettre une donnée dans une cellule, lire ceci : http://bidou.developpez.com/article/VBA/
    En particulier à partir de la page 143.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut
    Il s'agit d'un véritable tableau "Insertion=>Tableau"

    Merci pour le côté UserForm

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

Discussions similaires

  1. [WD18] Ajouter des valeurs dans un tableau simple
    Par olihop dans le forum WinDev
    Réponses: 2
    Dernier message: 18/11/2014, 11h23
  2. Ajouter des valeurs dans un tableau
    Par Mrlaurent90 dans le forum BIRT
    Réponses: 4
    Dernier message: 09/03/2011, 10h55
  3. Ajouter des valeurs à un tableau
    Par Mchupakabra dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 02/04/2008, 16h03
  4. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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