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 :

Enregistrement dépendant d'une ou plusieurs lignes


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut Enregistrement dépendant d'une ou plusieurs lignes
    Bonjour forum

    Ça fait des jours que je coince sur un problème.
    Un client peut faire un choix ou plusieurs choix. Et ces différents choix sont enregistrés dans un tableau situé sur une feuille.
    Sur mon userform, j'ai des checkbox pour les différents choix. Lorsque le client se présente à moi, je coche ses choix d'abord qui s'enregistrent immédiatement dans la base de données sur plusieurs lignes dans la colonne H avant que je n' enregistre les autres informations le concernant dans la colonne B.
    Préoccupations : je souhaiterais que lorsque dans la colonne H, nous avons 1 ou 2 ou 3 lignes, alors dans la colonne B nous restions dans la première ligne du premier choix.
    Exemple : H2,H3,H4 donc en B2
    H5,H6 donc B5

    J'espère que j'ai été un peu plus clair dans mes explications. Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    A mon avis il faut absolument éviter de faire des tableaux avec des cellules vides car cela empêche d'utiliser les filtres et les tableaux croisés dynamiques. Il est vraiment très préférable de n'avoir qu'une seule ligne par client, et avoir autant de colonnes qu'il y a de choix possible (et donc avoir des colonnes H, I, J, K, ...) que l'on marque d'un "x" si choisi.

    Cordialement.

  3. #3
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci pour la réponse... Le problème est que ce sont les intitulés des formations. Et une formation peut avoir plusieurs volets. Un client peut décider de choisir un type de formation comme : sécurité de l'information et cyber sécurité. Et dans ce type de formation nous pouvons avoir plus d'une dizaine de libellés. C'est pourquoi il serait difficile de faire sur plusieurs colonnes.
    J'ai reçu à trouver une parade à mon inquiétude mais au lieu de la première ligne je me retrouve à la dernière ligne du dernier choix. Ça va mais n'y a t'il pas moyen de faire l'inverse de ma solution?

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    A mon avis, même s'il y a 50 ou 100 choix possible, il est préférable de faire 50 ou 100 colonnes, une par choix (le titre de colonne contenant le libellé du choix).

    Maintenant pour ce que vous souhaitez, il me semble assez simple d'enregistrer dans une variable la ligne de départ (colonne B), et dans une autre variable la ligne des choix (colonne H). L'instruction .End(xlUp) permet de facilement retrouver les n° des dernières lignes remplies dans chacune des colonnes.

    Cordialement.

  5. #5
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    je poste le code pour que vous constatiez
    le code du checkbox lors du choix
    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
    Private Sub ChBox1_Click()
    Dim X As Integer,  i As Integer
     
    If ChBox1 = True Then
    With Sheets("Base de donnees PRACYB")
    X = .Range("j" & Rows.Count).End(xlUp).Row + 1
     
    .Range("j" & X) = Cb_Etat
    .Range("k" & X) = Val(Text_Qty)
    .Range("l" & X) = Text_Rate
    .Range("m" & X) = Val(Text_Unit) & " XOF"
    .Range("n" & X) = Val(Text_Amount) & " XOF"
    .Range("o" & X) = Val(Text_total) & " XOF"
    .Range("p" & X) = Val(Text_Amount_Rate) & " XOF"
    .Range("q" & X) = Val(Text_Balance) & " XOF"
     
    .Range("h" & X) = "Formation Locale"
    .Range("i" & X) = Label12.Caption
     
    End With
    'Call clear_content
    With Sheets("FACTURE PRACYB")
    i = .Range("m" & Rows.Count).End(xlUp).Row + 1
    .Range("m" & i) = Cb_Etat
    .Range("o" & i) = Text_Qty
    '.Range("n" & X) = Text_Rate
    .Range("p" & i) = Val(Text_Unit)
    End With
    End If
    Call verouiller
    End Sub
    le code d'enregistrement dependant de la ligne occupée par les choix
    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
    Private Sub CmB_register_Click() ' enregistrement des données
    Dim X As Integer
     
    If MsgBox("Do you want to register this customer?", vbQuestion + vbYesNo, "PRACYB") = vbNo Then Exit Sub
    With Sheets("Base de donnees PRACYB")
    X = .Range("j" & Rows.Count).End(xlUp).Row
     
    .Range("a" & X) = Text_Invoice
    .Range("b" & X) = Text_Name
    .Range("c" & X) = Text_Mail
    .Range("d" & X) = Text_Phone
    .Range("e" & X) = Text_State
    .Range("f" & X) = L_date1
    .Range("g" & X) = Text_Country
     
     
    End With
     
    Call vider_champ
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Difficile pour moi de comprendre le problème sans voir les feuilles avec quelques données. En attaché, un petit exemple.
    Cordialement.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    merci une fois pour l'effort.
    je vais poster le fichier pour que vous regardiez de plus près mon problème. cela se passe dans la feuille " Base de données".
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Avant de continuer, 2 remarques:
    - tel que construit le formulaire ne permet pas à une personne de choisir 2 séminaires qui relèvent de la même catégorie (p.ex. "Cloud technologies"). Pour cela il faudra faire 2 factures.
    - à mon avis il faut immédiatement indiquer les dates des séminaires (car on ne peut s'inscrire sur des séminaires qui se déroulent aux mêmes dates, on peut vouloir prendre 2 séminaires qui se suivent, le même séminaire peut éventuellement se répéter à plusieurs dates différentes).

    Cordialement.

  9. #9
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Très pertinente comme remarque. Je n'y avais pas pensé mais les indications que j'ai reçues du client ( le demandeur de l'application) m'ont permis de faire ce formulaire. Je vais lui suggérer tes remarques et je vous reviendrai.

    Merci encore

Discussions similaires

  1. Centrer des blocs sur une ou plusieurs lignes
    Par Invité dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 07/12/2015, 14h35
  2. Fusion de cellules sur une ou plusieurs lignes précédentes
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/07/2010, 18h11
  3. supprimer/modifier une ou plusieurs lignes d'un tableau
    Par luffy2mars dans le forum Taglibs
    Réponses: 1
    Dernier message: 20/11/2009, 14h15
  4. Copier une ou plusieurs lignes
    Par bellamouna dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/12/2008, 15h43

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