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 :

[XL-2003] Copie données usf dans une certaine ligne tableau excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut [XL-2003] Copie données usf dans une certaine ligne tableau excel
    Bonjour à tous,
    Vu mon niveau de débutant en VBA j' n'arrive pas à résoudre un problème afin de copier les données des textbox d'un userform dans un tableau excel.

    En gros, en fonction de la valeur se trouvant dans la textbox 1, je voudrais que l'ensemble des données de l'usf soit copié dans telle ou telle ligne de mon tableau.
    Ex : si textbox1="401" je veux copier dans la ligne8 par ex
    si textbox1="503 je veux copier dans la ligne18 par ex

    J'avais fait un truc de ce style mais ce n'est pas jouable car j'ai environ 60 possibilité de choix de ligne en fonction de ma valeur dans textbox1 :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    If Me.tboxnumch.Text = "402" Then
    Sheets("Tableau synthétique").Select
    [d3] = tboxnom.Text
    [e3] = tboxprenom.Text
    [f3] = tboxdatnai.Text
    [n3] = cbsitmat.Text
    [o3] = cbnbeft.Text
    [q3] = cbmedecin.Text
    [m3] = tbnumss.Text
    [h3] = cbcmu.Text
    [i3] = tboxexpcmu.Text
    [l3] = tboxmut.Text
    [j3] = cbtaux.Text
    [k3] = tboxexo.Text
    [r3] = tboxpath1.Text
    [s3] = tboxpath2.Text
    [t3] = tboxpath3.Text
    [u3] = tboxtitsej.Text
    [v3] = tboxexptit.Text
    [w3] = tboxmontretr.Text
    [x3] = tboxmontcom.Text
    Sheets("Accueil").Select
    Exit Sub
    End If
    If Me.tboxnumch.Text = "403" Then
    Sheets("Tableau synthétique").Select
    [d4] = tboxnom.Text
    [e4] = tboxprenom.Text
    [f4] = tboxdatnai.Text
    [n4] = cbsitmat.Text
    [o4] = cbnbeft.Text
    [q4] = cbmedecin.Text
    [m4] = tbnumss.Text
    [h4] = cbcmu.Text
    [i4] = tboxexpcmu.Text
    [l4] = tboxmut.Text
    [j4] = cbtaux.Text
    [k4] = tboxexo.Text
    [r4] = tboxpath1.Text
    [s4] = tboxpath2.Text
    [t4] = tboxpath3.Text
    [u4] = tboxtitsej.Text
    [v4] = tboxexptit.Text
    [w4] = tboxmontretr.Text
    [x4] = tboxmontcom.Text
    Sheets("Accueil").Select
    Exit Sub
    End If
    Si je fais ca pour mes 60 possibilités ce serait bien trop long.

    Quelqu'un aurait-il une petite idée pour me simplifier tout ce bazar ?
    Merci d'avance à tous

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonjour

    n'y aurais t-il pas moyen de trouver une formule permetant de déduire le numéro de ligne par rapport à la valeur de la textBox

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If Me.tboxnumch.Text = "402" Then
    ...
    [d3] = tboxnom.Text
    ...
    If Me.tboxnumch.Text = "403" Then
    ...
    [d4] = tboxnom.Text
    donnerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ligne = Me.tboxnumch.Text - 399 'ce qui donne pour 402 -> 3 pour 403 -> 4
    Sheets("Tableau synthétique").Select
    range("D" & ligne) = tboxnom.Text
    range("E" & ligne) = tboxprenom.Text
    ...
    et dans ce cas tu ne l'écrit qu'une fois

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour mikam1660 zyhack .on pourrait faire différamment en renommant les 19 textboxs par exemple de T1 a T19 pour eviter d'utiliser TypeOf ou TypeName

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Byte, y As Byte, z As Variant
      z = tboxnumch.Value - 399: y = 3
       For i = 1 To 19
        If i = 4 Then y = 4
        If i = 12 Then y = 5
    Sheets("Tableau synthétique").Cells(z, i + y) = Controls("T" & i).Value
       Next i

Discussions similaires

  1. [XL-2007] USF : Intégrer des données textbox dans une ligne aléatoire
    Par Mo_31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/10/2012, 21h33
  2. [AC-2010] Données "fantômes" dans une table suite passage access 2003 à 2010
    Par I Need Help dans le forum Modélisation
    Réponses: 11
    Dernier message: 20/09/2012, 13h19
  3. [Débutant] rentrer dans une certaine ligne d'un fichier texte Possible?
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/04/2010, 01h16
  4. Insérer une donnée RTF dans une cellule de tableau
    Par HomoErectus dans le forum VBA Word
    Réponses: 6
    Dernier message: 14/08/2009, 15h00
  5. Copie de données filtrées dans une autre feuille
    Par papagei2 dans le forum Excel
    Réponses: 1
    Dernier message: 30/08/2007, 17h16

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