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 :

Userform et modification feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Points : 87
    Points
    87
    Par défaut Userform et modification feuille
    Salut à tous,

    Voila j'ai plusieurs textbox (une dizaine) dont une (textbox20) avec une listbox au-dessous,

    La textbox20 peut être considérée comme une barre de recherche.

    En fonction de ce qui est saisi dans celle-ci, la listbox affichera des résultats,

    Un click sur le listbox permet de selection une donnée dans le textbox.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox20_Change()
    Worksheets("Base adresses").Activate
        ListBox1.Clear
        If TextBox20 <> "" Then
            For ligne = 3 To 40000
                If Cells(ligne, 1) Like "*" & TextBox20 & "*" Then
                    ListBox1.AddItem Cells(ligne, 1)
                End If
            Next
        End If
    End Sub
    J'ajoute le résultat dans le textbox et aussi les résultats des cellules de la même ligne dans d'autre textbox
    comme ceci:

    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
    Me.TextBox20 = Me.ListBox1.List(Me.ListBox1.ListIndex)
     
    For ligne = 3 To 40000
        If Cells(ligne, 1).Value Like "*" & Me.TextBox20 & "*" Then
            Me.TextBox1 = Cells(ligne, 3).Value
            Me.TextBox2 = Cells(ligne, 4).Value
            Me.TextBox3 = Cells(ligne, 5).Value
            Me.TextBox4 = Cells(ligne, 6).Value
            Me.TextBox5 = Cells(ligne, 7).Value
            Me.TextBox6 = Cells(ligne, 8).Value
            Me.TextBox7 = Cells(ligne, 9).Value
            Me.TextBox8 = Cells(ligne, 10).Value
            Me.TextBox9 = Cells(ligne, 11).Value
            Me.TextBox10 = Cells(ligne, 2).Value
        End If
    Next

    Le problème c'est que je n'ai pas la possibilité de modifié une valeur dans une cellule au travers d'une de ces textbox.

    Parce que au début de mon code l'insertion se fait de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a = textbox1.value
     
    derlig = Feuil7.Range("A" & Rows.Count).End(xlUp).Row
    Worksheets("bdd").Range("A" & derlig + 1).Value = a
    Ce que j'ai fais est plutôt long.


    Alors que j'aimerai avoir ce choix après avoir retouché le textbox:

    - Modifier une donnée sur la ligne ou ajouter la donnée à la fin

    Savez-vous comment s'y prendre pour avoir ce choix ?

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    la textbox a un événement qui teste quand on y sort , c'est à ce moment là que tu décides

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cette contribution USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire t'aidera sans doute à résoudre ton problème.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre régulier
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Points : 87
    Points
    87
    Par défaut
    Merci beaucoup,

    Je regarde ça.

  5. #5
    Membre régulier
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Points : 87
    Points
    87
    Par défaut
    Pour commencer Merci Philippe pour cette contribution,
    C'est remarquable.

    Ensuite je précise que je me suis peut être mal expliqué mais mon problème est le suivant.
    J'ai une valeur dans un textbox et des valeur dans une feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    a = texbox3
    Dlig1 = Feuil7.Range("C" & Rows.Count).End(xlUp).Row
    derlig = Sheets("bdd").Cells(Rows.Count, 1).End(xlUp).Row
     
    For ligne = 3 To derlig + 1
        If Sheets("bdd").Cells(ligne, 1).Value = TextBox20.Value Then
        Cells(ligne, 3).Value = Me.TextBox3
    else
    Worksheets("bdd").Range("C" & Dlig1 + 1).Value = a
    end if
    Next
    J'aimerai que la deuxième condition ne se réalise qu'une fois que toute les lignes ont été balayé et que la première condition soit fausse.

    Je ne parviens pas à le faire.

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    et que la première condition soit fausse.
    il te faut un "témoin" qui atteste ta première volonté --> première partie vraie ou fausse
    dim ErreurDetect as boolean
    ErreurDetect = false

    J'aimerai que la deuxième condition ne se réalise qu'une fois que toute les lignes ont été balayé
    tu boucle "sans le else" et si il y a une erreur ErreurDetect = true

    après le next
    if ErreurDetect then ...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  7. #7
    Membre régulier
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Points : 87
    Points
    87
    Par défaut
    Merci beaucoup,

    ça fonctionne.

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

Discussions similaires

  1. Modifications feuilles CSS non prises en compte immédiatement
    Par brouce80 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2007, 15h40
  2. vba événement modification feuilles
    Par mistercool86 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/06/2007, 18h12
  3. Modification feuille de style avec javascript
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2007, 18h39
  4. Réponses: 1
    Dernier message: 23/04/2007, 21h05
  5. Soustraction a partir d'un userform vers une feuille excel
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2006, 07h15

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