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 :

Empêcher la copie de la valeur vide d'un textbox dans la feuille excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut Empêcher la copie de la valeur vide d'un textbox dans la feuille excel
    Bonsoir, je rencontre un petit problème avec mon code vba.
    Bon j'ai donné la main à l'utilisateur pour choisir une référence si ça existe alors il peut modifier toutes les données associées à cette référence.
    Le problème c'est que lorqu'il laisse un textbox vide (il veut pas modifier la valeur) l'ancienne valeur s'écrase et se remplace par le vide dans ma feuille excel.
    Merci de me proposer une solution
    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
    49
    50
    51
    52
    53
    54
    Private Sub CommandButton3_Click()
    Dim k As Integer
    Dim a As Integer
    Dim H As Integer
    H = 0
    a = 5
     
    If MsgBox("Confirmez-vous la modification des données?", vbYesNo, "Confirmation") = vbYes Then
    '---------------------
    If TextBox1.Value = "" Then
    Msg = "Indiquez une Désignation"
    MsgBox Msg
    '---------------------
    ElseIf ComboBox4.Value = "" Then
    Msg = "Indiquez le type"
    MsgBox Msg
    '---------------------
    ElseIf TextBox3.Value = "" Then
    Msg = "Indiquez une quantité valide"
    MsgBox Msg
    '---------------------
    ElseIf TextBox1.Text <> "" And ComboBox4.Value <> "" And TextBox3.Value <> "" Then
     Sheets("Liste des commandes").Select
     While Range("C" & a).Value <> ""
    a = a + 1
    Wend
     For k = 6 To a
     If TextBox25.Text = Range("C" & k).Value And ComboBox5.Value = Range("A" & k).Value Then
     H = k
     
     End If
     Next
     '-----------
     If H = 0 Then
     MsgBox ("La référence n'existe pas dans la liste des commandes")
     Else: Sheets("Liste des commandes").Select
     Range("B" & H).Value = ComboBox4.Value
     Range("D" & H).Value = TextBox3.Value
     Range("A" & H).Value = TextBox1.Value
     Range("E" & H).Value = TextBox12.Value
     Range("G" & H).Value = TextBox10.Value
     Range("F" & H).Value = ComboBox1.Value & ComboBox2.Value & ComboBox3.Value
     'ComboBox5.Clear
     'TextBox25.Value = ""
     End If
     '----------------------
     
    End If
    Else
    ComboBox5.Clear
    TextBox25.Value = ""
    End If
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Il suffit de faire l'inverse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If MsgBox("Confirmez-vous la modification des données?", vbYesNo, "Confirmation") = vbNo Then Exit Sub
    Cdlt

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if TextBox3.Value<>"" then Range("D" & H).Value = TextBox3.Value
     if TextBox1.Value<>"" then Range("A" & H).Value = TextBox1.Value
     if TextBox12.Value<>"" then Range("E" & H).Value = TextBox12.Value Range("G" & H).Value = TextBox10.Value
    la retranscription se fera uniquement si le textbox est rempli et cela pour les 3 séparément sans modifier l'organisation et l'exécution de la macro

    maintenant si la condition est : copier si les 3 textboxs sont remplis ?alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If TextBox3.Value<>"" and TextBox1.Value<>""and  TextBox12.Value<>"" then
     Range("D" & H).Value = TextBox3.Value
     Range("A" & H).Value = TextBox1.Value
    Range("E" & H).Value = TextBox12.Value Range("G" & H).Value = TextBox10.Value
    '....
    end if
    tout simplement
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if TextBox3.Value<>"" then Range("D" & H).Value = TextBox3.Value
     if TextBox1.Value<>"" then Range("A" & H).Value = TextBox1.Value
     if TextBox12.Value<>"" then Range("E" & H).Value = TextBox12.Value Range("G" & H).Value = TextBox10.Value
    la retranscription se fera uniquement si le textbox est rempli et cela pour les 3 séparément sans modifier l'organisation et l'exécution de la macro

    maintenant si la condition est : copier si les 3 textboxs sont remplis ?alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If TextBox3.Value<>"" and TextBox1.Value<>""and  TextBox12.Value<>"" then
     Range("D" & H).Value = TextBox3.Value
     Range("A" & H).Value = TextBox1.Value
    Range("E" & H).Value = TextBox12.Value Range("G" & H).Value = TextBox10.Value
    '....
    end if
    tout simplement
    Bonjour, voilà c'est ce que je compte faire, mais pour une interface là ou ya plusieurs textbox ça sera lourd

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    lourd?

    ben en fait c'est aussi lourd que le principe utilisé dans ta conception de ton interface (un UserForm je suppose)

    malheureusement si tu a 20 textboxs et que tu utilise la methode 1 ou 2 que je t'ai donné il te faudra conditionner tes 20 textboxs tu n'a pas le choix

    cela dit encore une fois si tu a bien conçu ton interface(UserForm) dans une petite boucle conditionnée tu retranscrit tes données(OU PAS) aux max 5/6 lignes de code
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut
    Salut, je parle du cas ou l'utilisateur accepte de faire la modification.
    J'ai plusieurs textbox à remplir mais lorsqu'il laisse un vide, le vide s'affecte à la cellule associée et écrase l’ancienne valeur.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    et donc????
    qu'est ce que tu comprends pas dans ce que je t'ai donné ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mars 2019
    Messages : 35
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    et donc????
    qu'est ce que tu comprends pas dans ce que je t'ai donné ???
    c'était en réponse à ARTHUR

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/09/2015, 10h14
  2. [XL-97] Copie capricieuse des valeurs d'un range vers une autre feuille
    Par Michel Delapouaitte dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/04/2009, 09h34
  3. affichage de valeur dans une feuille excel
    Par blanka6 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2007, 14h25
  4. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55
  5. Réponses: 8
    Dernier message: 15/05/2006, 14h33

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