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

Excel Discussion :

Transfert des données d'un UserForm vers un tableau nommé


Sujet :

Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Transfert des données d'un UserForm vers un tableau nommé
    Bonjour,
    Merci tout d'abord pour le temps que vous m'accorderez...

    J'envisage dans un avenir proche une formation VBA mais en attendant, je suis bloquée depuis plusieurs jours sur le transfert des données de mon formulaire "UserForm1"vers un tableau que j'ai nommé "base" situé sur l'onglet "bdd" de mon fichier.

    Voici ce que j'ai pu trouver sur le web :

    Private Sub CommandButton2_Click()

    With Sheets("bdd").ListObjects("base")
    If .ListRows.Count = 0 Then
    Range("base[[#Headers],]").Offset(1, 0) = 1
    Range("base[[#Headers],]").Offset(1, 0) = ""
    End If

    If .ListRows.Count = 1 And .ListRows(1).Range.Cells(1, 1) = "" Then
    Set LignTablo = Sheets("bdd").ListObjects("base").ListRows(1)
    Else
    Set LignTablo = Range("base").ListObject.ListRows.Add(AlwaysInsert:=True)
    End If
    End With

    With LignTablo.Range
    .Cells(1, 1) = TextBox1
    .Cells(1, 2) = ComboBox1
    .Cells(1, 3) = TextBox2
    .Cells(1, 4) = TextBox3
    .Cells(1, 5) = TextBox4
    .Cells(1, 6) = TextBox5
    .Cells(1, 7) = TextBox6
    .Cells(1, 8) = TextBox7
    .Cells(1, 9) = TextBox8
    .Cells(1, 10) = TextBox9
    .Cells(1, 11) = TextBox10
    .Cells(1, 12) = TextBox11.Cells(1, 13) = TextBox12
    .Cells(1, 14) = TextBox13
    .Cells(1, 15) = TextBox14
    .Cells(1, 16) = TextBox15
    .Cells(1, 17) = TextBox16
    .Cells(1, 18) = TextBox17
    .Cells(1, 19) = TextBox18
    .Cells(1, 20) = TextBox19
    .Cells(1, 21) = TextBox20
    .Cells(1, 22) = TextBox18
    .Cells(1, 23) = TextBox19
    .Cells(1, 24) = TextBox20
    .Cells(1, 25) = TextBox21
    .Cells(1, 26) = TextBox22
    .Cells(1, 27) = TextBox23
    .Cells(1, 28) = TextBox24
    .Cells(1, 29) = TextBox25
    .Cells(1, 30) = TextBox26
    .Cells(1, 31) = TextBox27
    .Cells(1, 32) = TextBox28
    .Cells(1, 33) = TextBox29




    End With
    'on décharge le formulaire pour qu'il soit de nouveau initialisé lors de son prochain affichage
    Unload Me

    End Sub


    Le clic me renvoie :
    "Erreur d'exécution 9
    L'indice n'appartient pas à la sélection"

    Pouvez-vous m'orienter ?

    Merci et bonne journée à vous.

    Jane
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur Mécanique
    Inscrit en
    Mai 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur Mécanique

    Informations forums :
    Inscription : Mai 2015
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    je pense tout simplement que ton code devrait s’écrire comme cela :
    With LignTablo.Range
    .Cells(1, 1) = TextBox1
    .Cells(1, 2) = ComboBox1
    .Cells(1, 3) = TextBox2
    .Cells(1, 4) = TextBox3
    .Cells(1, 5) = TextBox4
    .Cells(1, 6) = TextBox5
    .Cells(1, 7) = TextBox6
    .Cells(1, 8) = TextBox7
    .Cells(1, 9) = TextBox8
    .Cells(1, 10) = TextBox9
    .Cells(1, 11) = TextBox10
    .Cells(1, 12) = TextBox11
    .Cells(1, 13) = TextBox12
    .Cells(1, 14) = TextBox13
    .Cells(1, 15) = TextBox14
    .Cells(1, 16) = TextBox15
    .Cells(1, 17) = TextBox16
    .Cells(1, 18) = TextBox17
    .Cells(1, 19) = TextBox18
    .Cells(1, 20) = TextBox19
    .Cells(1, 21) = TextBox20
    .Cells(1, 22) = TextBox18
    .Cells(1, 23) = TextBox19
    .Cells(1, 24) = TextBox20
    .Cells(1, 25) = TextBox21
    .Cells(1, 26) = TextBox22
    .Cells(1, 27) = TextBox23
    .Cells(1, 28) = TextBox24
    .Cells(1, 29) = TextBox25
    .Cells(1, 30) = TextBox26
    .Cells(1, 31) = TextBox27
    .Cells(1, 32) = TextBox28
    .Cells(1, 33) = TextBox29
    End With

  3. #3
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Bonjour Arnaud,

    Merci de ta réponse.

    Mon formulaire est destiné à alimenter une base de données qui permettra ensuite d'alimenter des graphiques etc...

    Un formulaire saisi = une ligne d'enregistrement dans la base. Il faut donc également, qu'avec le bouton enregistrer de mon formulaire, les données soient transférées sur une nouvelle ligne du tableau.

    J'ai oublié de préciser que la problématique est expliquée sur mon fichier.
    Merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur Mécanique
    Inscrit en
    Mai 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur Mécanique

    Informations forums :
    Inscription : Mai 2015
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    si tu essaie un truc du genre la :
    Private Sub CommandButton2_Click()
    dim suivant as integer
    suivant = Sheets("bdd").Range("A" & Rows.Count).End(xlUp).Row + 1

    With Sheets("bdd").ListObjects("base")
    If .ListRows.Count = 0 Then
    Range("base[[#Headers],]").Offset(1, 0) = 1
    Range("base[[#Headers],]").Offset(1, 0) = ""
    End If

    If .ListRows.Count = 1 And .ListRows(1).Range.Cells(1, 1) = "" Then
    Set LignTablo = Sheets("bdd").ListObjects("base").ListRows(1)
    Else
    Set LignTablo = Range("base").ListObject.ListRows.Add(AlwaysInsert:=True)
    End If
    End With

    With LignTablo.Range
    .Cells(suivant , 1) = TextBox1
    .Cells(suivant , 2) = ComboBox1
    .Cells(suivant , 3) = TextBox2
    .Cells(suivant , 4) = TextBox3
    .Cells(suivant , 5) = TextBox4
    .Cells(suivant , 6) = TextBox5
    .Cells(suivant , 7) = TextBox6
    .Cells(suivant , 8) = TextBox7
    .Cells(suivant , 9) = TextBox8
    .Cells(suivant , 10) = TextBox9
    .Cells(suivant , 11) = TextBox10
    .Cells(suivant , 12) = TextBox11
    .Cells(suivant , 13) = TextBox12
    .Cells(suivant , 14) = TextBox13
    .Cells(suivant , 15) = TextBox14
    .Cells(suivant , 16) = TextBox15
    .Cells(suivant , 17) = TextBox16
    .Cells(suivant , 18) = TextBox17
    .Cells(suivant , 19) = TextBox18
    .Cells(suivant , 20) = TextBox19
    .Cells(suivant , 21) = TextBox20
    .Cells(suivant ,22) = TextBox18
    .Cells(suivant , 23) = TextBox19
    .Cells(suivant , 24) = TextBox20
    .Cells(suivant , 25) = TextBox21
    .Cells(suivant , 26) = TextBox22
    .Cells(suivant , 27) = TextBox23
    .Cells(suivant , 28) = TextBox24
    .Cells(suivant , 29) = TextBox25
    .Cells(suivant , 30) = TextBox26
    .Cells(suivant , 31) = TextBox27
    .Cells(suivant , 32) = TextBox28
    .Cells(suivant , 33) = TextBox29




    End With
    'on décharge le formulaire pour qu'il soit de nouveau initialisé lors de son prochain affichage
    Unload Me

    End Sub

  5. #5
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Arnaud,
    J'ai essayé mais ça ne fonctionne pas...
    "Erreur d'exécution 9
    L'indice n'appartient pas à la sélection"

    Jane

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur Mécanique
    Inscrit en
    Mai 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur Mécanique

    Informations forums :
    Inscription : Mai 2015
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    sur quel ligne ?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Celle-ci :

    With Sheets("bdd").ListObjects("base1")

  8. #8
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Plutôt celle-ci (désolée, je travaille sur une copie pour faire des essais...)

    With Sheets("bdd").ListObjects("base")

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur Mécanique
    Inscrit en
    Mai 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur Mécanique

    Informations forums :
    Inscription : Mai 2015
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    sinon je pense le mieux c'est de faire ça:


    Private Sub CommandButton2_Click()
    dim suivant as integer
    suivant = Sheets("bdd").Range("A" & Rows.Count).End(xlUp).Row + 1


    Sheets("bdd").Cells(suivant , 1) = TextBox1
    Sheets("bdd").Cells(suivant , 2) = ComboBox1
    Sheets("bdd").cells(suivant , 3) = TextBox2
    Sheets("bdd").Cells(suivant , 4) = TextBox3
    Sheets("bdd").Cells(suivant , 5) = TextBox4
    Sheets("bdd").Cells(suivant , 6) = TextBox5
    Sheets("bdd").Cells(suivant , 7) = TextBox6
    Sheets("bdd").Cells(suivant , 8) = TextBox7
    Sheets("bdd").Cells(suivant , 9) = TextBox8
    Sheets("bdd").Cells(suivant , 10) = TextBox9
    Sheets("bdd").Cells(suivant , 11) = TextBox10
    Sheets("bdd").Cells(suivant , 12) = TextBox11
    Sheets("bdd").Cells(suivant , 13) = TextBox12
    Sheets("bdd").Cells(suivant , 14) = TextBox13
    Sheets("bdd").Cells(suivant , 15) = TextBox14
    Sheets("bdd").Cells(suivant , 16) = TextBox15
    Sheets("bdd").Cells(suivant , 17) = TextBox16
    Sheets("bdd").Cells(suivant , 18) = TextBox17
    Sheets("bdd").Cells(suivant , 19) = TextBox18
    Sheets("bdd").Cells(suivant , 20) = TextBox19
    Sheets("bdd").Cells(suivant , 21) = TextBox20
    Sheets("bdd").Cells(suivant ,22) = TextBox18
    Sheets("bdd").Cells(suivant , 23) = TextBox19
    Sheets("bdd").Cells(suivant , 24) = TextBox20
    Sheets("bdd").Cells(suivant , 25) = TextBox21
    Sheets("bdd").Cells(suivant , 26) = TextBox22
    Sheets("bdd").Cells(suivant , 27) = TextBox23
    Sheets("bdd").Cells(suivant , 28) = TextBox24
    Sheets("bdd").Cells(suivant , 29) = TextBox25
    Sheets("bdd").Cells(suivant , 30) = TextBox26
    Sheets("bdd").Cells(suivant , 31) = TextBox27
    Sheets("bdd").Cells(suivant , 32) = TextBox28
    Sheets("bdd").Cells(suivant , 33) = TextBox29
    'on décharge le formulaire pour qu'il soit de nouveau initialisé lors de son prochain affichage
    Unload Me

    End Sub

  10. #10
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Ca marche !!!
    Les données se transfèrent bien chaque fois sur une nouvelle ligne mais en dessous de mon tableau "base".
    C'est déjà une bonne progression, je peux déjà commencer de cette manière à moins que tu aies aussi la solution pour que les données intègre les cellules de mon tableau...

    Sinon merci Arnaud pour ton aide.

    Jane

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/08/2014, 21h18
  2. [Débutant] Transfert des données d'une application vers Excel
    Par beaudelaire dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/04/2012, 10h33
  3. Transfert des données d'une boucle vers une feuille
    Par chelmi95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/09/2007, 13h03
  4. transfert des données d'un fichier text vers un fichier excel sous VB
    Par insane_80 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/09/2006, 13h32
  5. Transfert des données en langue arabe vers Mysql
    Par naoufal01 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/09/2006, 13h55

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