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 vers cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut Userform vers cellules
    Bonjour à tous,

    Je reviens ici pour une nouvelle interrogation.
    Avec une précédente aide, j'ai réussi à finir ma userform.

    Désormais, je souhaiterai que les informations saisies et sélectionnées soient envoyées vers les cellules correspondantes de la page 2. (même celle issues de la multipages)

    Faut-il créer un tableau ??
    Comment faire pour obliger la création d'une ligne pour ne pas effacer les données existantes (même si pour le moment il n'y a rien) ?

    -> après avoir appuyé sur VALIDER dans la userform "formulaire_sys_sol"

    Je vous transmets le fichier en question.
    L'intérêt pour moi et de connaitre la méthode général pour la comprendre et la mettre pratique !
    Je compte sur vous
    Fichiers attachés Fichiers attachés

  2. #2
    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 heu!...
    bonjour

    pour écrire a la chaîne ligne après ligne tu n'a pas besoins de créer une ligne il te suffi de trouver la dernière ligne utilisées + 1
    exemple
    pour 1er sheets c'est


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derniereligne=Sheets(1).Range("a" & Rows.Count).End(xlUp).Row+1
    ensuite pour tes controls dans ton usf tu peut boucler d'abors sur ton multipage
    ensuite boucler sur les controls de chaque page de ton multipage
    et dans la sous boucle en debut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derniereligne=derniereligne+1
    et tra,férer les données
    fin de boucle sur les controls
    find de boucle multipage
    je ne peut pas t'en dire plus n'ayant pas le contexte

    cela dis au plus simple il faudrais que tes textboxs dans le userforms soit dans un ordre précis
    sinon ça va faire beaucoup de lignes de code


    au plaisir
    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

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Juste un exemple pour renseigner le "Secteur" ligne après ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton2_Click()
        Dim Ligne As Long
        With Sheets("Feuil1")
            Ligne = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
            .Cells(Ligne, 2).Value = Me.ComboBox3.Value
        End With
    End Sub

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    J'ai commencé à préparer mais il manque des précisions, regardes 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
    Private Sub CommandButton2_Click()
    With Sheets("Feuil1")
      derlg = .Range("B" & .Rows.Count).End(xlUp).Row + 1
      .Range("B" & derlg) = ComboBox3
      .Range("C" & derlg) = ComboBox4
      .Range("D" & derlg) = DTPicker1
      .Range("E" & derlg) = TextBox2
      .Range("F" & derlg) = TextBox6
      .Range("G" & derlg) = TextBox3
      .Range("H" & derlg) = TextBox5
      For x = 1 To 4
        If Me.Controls("OptionButton" & x) Then
          .Range("I" & derlg) = Me.Controls("OptionButton" & x).Caption: Exit For
        End If
      Next x
      .Range("J" & derlg) = 'a voir, qu'appelles-tu "caratéristique"
      .Range("K" & derlg) = ComboBox5
      .Range("L" & derlg) = 'a voir, ou trouves-t-on "Traité"
      .Range("M" & derlg) = 'à voir, ou trouve-t-on "Vendu"
    End With
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut
    Merci à tous !
    ->casefayere : Je vais étudier votre "code" pour essayer de bien le comprendre.

    Pour info, les colonnes "traité" et "vendu" n'ont pour le moment aucune utilité. Je pense qu'elles seront remplies manuellement..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CommandButton2_Click()
    With Sheet("Feuil1")
    Sur votre code, ne manque-t-il pas le "!" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CommandButton2_Click()
    With Sheet("Feuil1!")
    Pour comprendre, faut que je lise le code en regardant ma feuill 1 en même temps.

    Merci pour l'aide !

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Non, il ne manque pas "!" mais il manque un "S
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    With Sheets("Feuil1")
    encore ecris trop vite

    une autre erreur :
    décidément, je mettrai ça sur le compte de ma Grippe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For x = 1 To 4
        If Me.Controls("OptionButton" & x) Then
          .Range("I" & derlg) = Me.Controls("OptionButton" & x).Caption: Exit For
        End If
      Next x
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut
    J'ai intégré le code.
    Visiblement tout fonctionne.
    Demain j'essaierai d'envoyer les informations de la multipages vers "caractéristiques".

    Bonne soirée à tous !

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Citation Envoyé par vinz33vinz Voir le message
    Sur votre code, ne manque-t-il pas le "!" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub CommandButton2_Click()
    With Sheet("Feuil1!")
    Citation Envoyé par casefayere
    Non, il ne manque pas "!" mais il manque un "S
    @vinz33vinz regardes les tutos de DVP sur les objets Excel et les collections, ça te permettra d'être sur des écritures à employer et facilitera grandement l'écriture de ton code et la compréhension du reste

    Sheets est la collection des objets Sheet, et quand tu veux désigner un objet via son item ou son nom, tu le fais en invoquant une propriété de la collection donc Sheets(xxx).

    D’ailleurs pour être correct, vu que tu adresses des cellules, tu devrais employer l'objet Worksheet (collection = Worksheets*) et non la collection Sheets qui contient tous les autres types de feuilles Graph, Macro, Dialogue et calcul

    * En général sous VBA les collections portent le nom de l'objet sous-jacent avec un S en plus... à quelques exceptions près..


    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re-bonjour à tou(te)s, Didier,

    Merci de rappeler des règles incontournables, c'est toujours utile, pour ma part, il est vrai que je suis pas en forme et je n'ai donc pas envie de me lancer dans trop d'explications, je devrais ne pas pas insister dans mon état mais c'est plus fort que moi, je n'aime pas laisser un sujet dans lequel je me suis impliqué, en plan.

    Mais c'est aussi formateur que vinz33vinz puisse voir mes erreurs (que celui qui n'a jamais...)

    Bonne journée, merci encore
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. [XL-2007] Copie ligne userform vers cellule avec passage à ligne automatique
    Par delphin13 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/06/2014, 18h08
  2. Réponses: 6
    Dernier message: 05/03/2009, 07h34
  3. Réponses: 1
    Dernier message: 18/05/2007, 16h10
  4. 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
  5. Réponses: 35
    Dernier message: 18/05/2006, 18h30

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