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 :

Formulaire VBA insertion tableau [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Formulaire VBA insertion tableau
    Bonjour,

    Je suis complètement débutante dans ce domaine, j'ai surtout regardé beaucoup de vidéos pour faire ce que j'ai fais jusqu'à présent. Néanmoins, me voilà bloquée sur un point et impossible de trouver où se situe le problème :

    J'ai réalisé un formulaire personnalisé userform, j'aimerais que en cliquant sur enregistrer, les données qui sont inscrites dans le formulaire se positionnent sur une nouvelle ligne dans mon tableau. Or, comme c'est un tableau encore entièrement vide, la première ligne colorée est considéré par mon code comme étant remplie, et du coup, mon code crée une nouvelle ligne en dessous et laisse vide la première du dessus.

    Pour illustrer mon propos, voici une capture d'écran :Nom : Visuel.png
Affichages : 311
Taille : 4,1 Ko


    Et voilà un bout de mon code, là où je suppose qu'il manque une petite information permettant de résoudre mon problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub GO_Click()
     
            Feuil1.Range("a1048576").End(xlUp).Offset(1, 0).Select
     
           ActiveCell = ActiveCell.Offset(-1, 0) + 1
     
           ActiveCell.Offset(0, 1) = Me.A
           ActiveCell.Offset(0, 2) = Me.B
     
     
    End Sub
    En résumé : Mon code ne me permet pas de remplir mon tableau dès sa première ligne. Et en plus il ne "prolonge" pas mon tableau quand des nouvelles données s'ajoutent. Peut-être faut-il que j'ajoute le nom de mon tableau ?

    Par avance merci et bon après-midi.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    J'ai eu la même réflexion dans le passé !

    J'ai corrigé cela en réduisant d'une ligne mon tableau. Ce qui fait que ta procédure dès la réelle première ligne vide et agrandira ton tableau en même temps.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Trystan441 Voir le message
    Bonjour,

    J'ai eu la même réflexion dans le passé !

    J'ai corrigé cela en réduisant d'une ligne mon tableau. Ce qui fait que ta procédure dès la réelle première ligne vide et agrandira ton tableau en même temps.
    C'est ce que je pensais, "malheureusement" quand on crée un tableau ("Mettre sous forme de tableau"), une première ligne vide colorée (ou non cela dépend du modèle choisi) se met automatiquement après les en-têtes et n'est visiblement pas retirable ...

  4. #4
    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
    Je ne sais pas si ta méthode fonctionne mais, personnellement, lorsque j'ajoute une ligne à un tableau structuré, je passe toujours par la méthode Resize.
    A lire : https://docs.microsoft.com/fr-fr/off...tobject.resize

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Je ne sais pas si ta méthode fonctionne mais, personnellement, lorsque j'ajoute une ligne à un tableau structuré, je passe toujours par la méthode Resize.
    A lire : https://docs.microsoft.com/fr-fr/off...tobject.resize
    Je n'arrive pas à appliquer cette méthode.

  6. #6
    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
    Citation Envoyé par Qwerty00 Voir le message
    Je n'arrive pas à appliquer cette méthode.
    Si tu ne montres pas ce que tu as fait, difficile de savoir où tu as commis une erreur.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    C'est le principal inconvénient avec ces tableaux structurés : Il faut s'approprier un nouveau vocabulaire, oublier les plages déclarées en DECALER, les End(XlUp)...
    Sous ce lien un petit classeur qui te décortique la méthode pour ajouter un enregistrement.
    A+

  8. #8
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 043
    Par défaut
    Bonjour.
    J'ai écrit une documentation sur les manipulations des tableaux structurés, avec des fonctions prêtes à l'emploi et qui répondent à vos besoins je pense (et je vous le souhaite).
    Voir dans ma signature le tome 5.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Menhir Voir le message
    Si tu ne montres pas ce que tu as fait, difficile de savoir où tu as commis une erreur.
    Je ne peux rien vous montrer car je n'ai pas vraiment compris où je devais l'appliquer, comment bien l'appliquer.

    Bonjour,
    C'est le principal inconvénient avec ces tableaux structurés : Il faut s'approprier un nouveau vocabulaire, oublier les plages déclarées en DECALER, les End(XlUp)...
    Sous ce lien un petit classeur qui te décortique la méthode pour ajouter un enregistrement.
    A+
    Je prends bien note de cette information, merci.

    Bonjour.
    J'ai écrit une documentation sur les manipulations des tableaux structurés, avec des fonctions prêtes à l'emploi et qui répondent à vos besoins je pense (et je vous le souhaite).
    Voir dans ma signature le tome 5.
    Je vais feuilleter cela, merci. Si jamais je résous mon problème, je fermerai le sujet avec en edit mon code.

  10. #10
    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
    Citation Envoyé par Qwerty00 Voir le message
    Je ne peux rien vous montrer car je n'ai pas vraiment compris où je devais l'appliquer, comment bien l'appliquer.
    Tu ne fais absolument aucun effort pour participer à la résolution de ton problème.
    Désolé mais tu as dépassé les limites de ma patience. Perso, j'arrête là.
    Bonne chance pour la suite.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Tu ne fais absolument aucun effort pour participer à la résolution de ton problème.
    Désolé mais tu as dépassé les limites de ma patience. Perso, j'arrête là.
    Bonne chance pour la suite.
    Veuillez m'excuser mais comme cité au tout début de ma conversation, je suis complètement débutante dans le domaine. Votre lien possède des explications sûrement très instructives pour quelqu'un qui s'y connaît. Malheureusement pour moi, c'est un peu du chinois et ce malgré toute ma bonne volonté. Je ne veux pas que l'on me prémâche le travail, je veux que l'on prenne un peu de temps pour m'expliquer plus en détails, pas à pas peut-être même, si vous m'accordez un peu de votre temps. Sachez que nous n'avons pas tous votre niveau de compréhension.

    Je vous remercie et vous souhaite une agréable journée.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Etant donné que tu es débutante, il y a un moyen très simple de résoudre le souci !

    Tu rentres les données de ta première ligne à la main.
    -> La première ligne de ton tableau sera considérée comme rempli (pour le tableau structuré)

    Puis tu utilises ensuite ta macro.
    -> Les données se mettront à la suite et ton tableau se redimensionnera

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Trystan441 Voir le message
    Bonjour,

    Etant donné que tu es débutante, il y a un moyen très simple de résoudre le souci !

    Tu rentres les données de ta première ligne à la main.
    -> La première ligne de ton tableau sera considérée comme rempli (pour le tableau structuré)

    Puis tu utilises ensuite ta macro.
    -> Les données se mettront à la suite et ton tableau se redimensionnera
    Bonjour,
    C'est une bonne idée, mais ça ne sera pas très pratique car une fois terminé, j'aimerais bien bloquer la feuille pour que personne ne puisse faire de modification à l'intérieur et que la seule manière de remplir le tableau soit le formulaire.

    Mais je suis en train de regarder une autre manière simple également de contourner mon problème :
    J'ai transformé mon tableau en simple plage de données : de cette façon la première ligne après les en-têtes est considérée comme vide automatiquement.
    Malheureusement je rencontre de nouveau un problème, je n'arrive pas à appliquer un code qui permettrait de "Si la ligne sélectionnée est déjà remplie, passage à la ligne en dessous pour écrire ce qu'il y a dans le formulaire" en gros. Car avec mon code actuel, ce que je veux enregistrer dans mon fichier remplace une ligne déjà remplie.

    Voilà mon code :
    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
    Private Sub Enregistrer_Click()
     
    'Enregistrer la saisie fait dans le formulaire
       'On cherche la prochaine ligne vide du tableau
            Feuil1.Activate
            Feuil1.Range("a1048576").End(xlUp).Offset(1, 0).Select
     
           ActiveCell.Offset(0, 0) = Me.txt1
           ActiveCell.Offset(0, 1) = Me.txt2
           ActiveCell.Offset(0, 2) = Me.txt3
           ActiveCell.Offset(0, 3) = Me.txt4
           ActiveCell.Offset(0, 4) = Me.txt5
           ActiveCell.Offset(0, 5) = Me.txt5
           ActiveCell.Offset(0, 6) = Me.txt6
           ActiveCell.Offset(0, 7) = Me.txt7
           ActiveCell.Offset(0, 8) = CDate(Me.txt8)
           ActiveCell.Offset(0, 9) = Me.txt9
     
           If MsgBox("Voulez vous entrer une nouvelle donnée?", vbYesNo) = vbNo Then
           Unload Me
     
        End If
     
    End Sub

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

Discussions similaires

  1. [XL-2010] VBA : Bouton contrôle de formulaire avec insertion forme et suppression ancienne
    Par anonymous9 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/03/2014, 21h24
  2. Réponses: 14
    Dernier message: 19/11/2010, 11h28
  3. [XL-2007] VBA - Insertion de plusieurs colonnes dans un tableau
    Par gwen.s dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2010, 17h23
  4. Insertion Tableau Excel dans un Slide (VBA)
    Par lecail65 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/02/2010, 11h41
  5. insertion tableau dans un formulaire
    Par sunwind dans le forum IHM
    Réponses: 1
    Dernier message: 12/11/2007, 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