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 :

transférer les données d'une listbox dans la feuille de calcul excel [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    biologiste
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : biologiste
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Par défaut transférer les données d'une listbox dans la feuille de calcul excel
    *Bonjour,*

    j'ai réaliser un formulaire VBA pour la saisie des renseignement d'un patient avec sec examen demandées
    sur UF j'ai introduit une listbox

    Mon souci est comment peut-on Transférer les sélections sur la feuil lorsque en validant la saisie
    voila le 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
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub CommandButton1_Click()
     
    Dim i As Integer
    If UserForm1.TextBox1 = "" Or UserForm1.TextBox2 = "" Then
        MsgBox "MERCI DE SIASIR Les Champs Nom et Prénom", vbCritical, "Champs manquants"
        TextBox1.SetFocus
        Else
     
     i = 1
     Do While Cells(i, 1) <> ""
     Cells(i, 1).Offset(1, 1).Select
     i = i + 1
     Loop
     ActiveCell.Value = UCase(UserForm1.TextBox1.Value)
     ActiveCell.Offset(0, 1).Value = UCase(Left(UserForm1.TextBox2.Value, 1)) & LCase(Right(UserForm1.TextBox2.Value, Len(UserForm1.TextBox2.Value) - 1))
     ActiveCell.Offset(0, 2).Value = UserForm1.TextBox3.Value
     ActiveCell.Offset(0, 4).Value = UserForm1.ComboBox1.Value
     UserForm1.TextBox1.Value = ""
     UserForm1.TextBox2.Value = ""
     UserForm1.TextBox3.Value = ""
     UserForm1.ComboBox1.Value = ""
     TextBox1.SetFocus
     
     End If
    If ActiveCell.Offset(-1, -1).Value = "ID" Then
     ActiveCell.Offset(0, -1).Value = 1
     Else
     ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1).Value + 1
     
     End If
     
    End Sub
    sur la feuil les cellule reversées pour la sélection de la listbox est à partir de G2-N2

    ci joint
    Nom : vba.png
Affichages : 1194
Taille : 42,9 Ko

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si les items sont classés identiquement avec ceux de ta ligne

    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
    Private Sub CommandButton1_Click()
    Dim NewLig As Long
     
    If Me.TextBox1 = "" Or Me.TextBox2 = "" Or Me.ListBox1.ListIndex = -1 Then
        MsgBox "MERCI DE SIASIR Les Champs Nom ou Prénom ou Examen", vbCritical, "Champs manquants"
        Me.TextBox1.SetFocus
    Else
        With Worksheets("NomDeTaFeuille")
            NewLig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            With .Range("A" & NewLig)
                .Value = IIf(NewLig = 2, 1, .Offset(-1).Value + 1)
                .Offset(, 1).Value = UCase(Me.TextBox1.Value)
                .Offset(, 2).Value = StrConv(Me.TextBox2.Value, vbProperCase)
                .Offset(, 3).Value = Me.TextBox3.Value
                .Offset(, 5).Value = Me.ComboBox1.Value
            End With
            .Range("G" & NewLig).Offset(, Me.ListBox1.ListIndex).Value = "X"
        End With
     
        Me.TextBox1.Value = ""
        Me.TextBox2.Value = ""
        Me.TextBox3.Value = ""
        Me.ComboBox1.ListIndex = -1
        Me.ListBox1.ListIndex = -1
        Me.TextBox1.SetFocus
    End If
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    biologiste
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : biologiste
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Par défaut
    merci mercatog pour la réponse rapide

    j'ai recopier votre code et voila le résultat

    Nom : resultat code.png
Affichages : 1007
Taille : 27,0 Ko .
    sur la ligne jaune en mettant la souris m'affiche NewLig = 2

    je ne comprends pas le problème

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    c'est à dire?
    et quelle valeur doit on avoir?

  5. #5
    Membre confirmé
    Homme Profil pro
    biologiste
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : biologiste
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Par défaut
    Bonjour mercatog

    Effectivement c'est la ligne N° 2.

    Mais le formulaire ne fait pas le Transfère des données sélectionner

    Autre souci que au moment de faire le choix à plusieurs testes sur la listbox . le Transfère sa concerne que le teste après le dernier teste choisit et un seul teste qu'il se transfère (ce n'est pas l'ensemble des testes sélectionner) .

    ci joint:
    laboratoire d'urgence-1.xlsm.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Quand on veut adapter, ça sera mieux de savoir ce qu'on fait

    En plus, comment peut on deviner que pour ta listbox est à choix multiple

    Pour cette fois, voila le code entier

    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 CommandButton1_Click()
    Dim NewLig As Long
    Dim i As Integer
     
    If Me.TextBox1 = "" Or Me.TextBox2 = "" Or Me.ListBox1.ListIndex = -1 Then
        MsgBox "MERCI DE SIASIR Les Champs Nom ou Prénom ou Examen", vbCritical, "Champs manquants"
        Me.TextBox1.SetFocus
    Else
        With Worksheets("données")
            NewLig = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
            With .Range("A" & NewLig)
                .Value = IIf(NewLig = 2, 1, Val(.Offset(-1).Value) + 1)
                .Offset(0, 1).Value = UCase(Me.TextBox1.Value)
                .Offset(0, 2).Value = StrConv(Me.TextBox2.Value, vbProperCase)
                .Offset(0, 3).Value = Me.TextBox3.Value
                .Offset(0, 4).Value = Me.ComboBox1.Value
            End With
            For i = 0 To Me.ListBox1.ListCount - 1
                If Me.ListBox1.Selected(i) Then .Range("F" & NewLig).Offset(, i).Value = UCase(Me.ListBox1.List(i))
            Next i
        End With
     
        Me.TextBox1.Value = ""
        Me.TextBox2.Value = ""
        Me.TextBox3.Value = ""
        Me.ComboBox1.ListIndex = -1
        For i = 0 To Me.ListBox1.ListCount - 1
            Me.ListBox1.Selected(i) = False
        Next i
        Me.TextBox1.SetFocus
    End If
    End Sub

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

Discussions similaires

  1. exporter les données d'une DB dans un doc. pdf
    Par gagalive dans le forum API standards et tierces
    Réponses: 35
    Dernier message: 15/07/2006, 13h22
  2. Enregistrer les données d'une table dans un fichier texte word ou excel
    Par maamar1979 dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 14/06/2006, 13h41
  3. [VBA-E] afficher les données d'une datagrid dans des zones de textes
    Par fadwa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2006, 13h51
  4. Transférer les données d'une JTable vers une autre
    Par rollbich dans le forum Composants
    Réponses: 4
    Dernier message: 19/01/2006, 23h22
  5. Transférer les données d'une base d'un coup
    Par martonpylon12 dans le forum Access
    Réponses: 6
    Dernier message: 12/10/2005, 20h43

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