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 :

aide classeur courrier


Sujet :

Macros et VBA Excel

  1. #21
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil pour la protection je suppose mot de passe =toto
    j ai fais une correction dans le code si tu remplis pas toutes les textboxs cela va se décaler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = .Range("k65536").End(xlUp).Row + 1
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = .Cells.Find("*", , , , , xlPrevious).Row + 1
    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
    Option Explicit
    Dim f, i As Variant, mondico As Object, c As Range, x As Byte
    Private Sub CommandButton1_Click()
    With Sheets("recom.arr")
    .Unprotect Password:="toto"
    i = .Cells.Find("*", , , , , xlPrevious).Row + 1
    For x = 1 To 9
    .Cells(i, x).Value = Controls("Textbox" & (x)).Value
    If x = 9 Then .Cells(i, x).Offset(0, 2).Value = Controls("Textbox" & (x)).Value
    Next x
    .Cells(i, "I").Value = ComboBox1: .Cells(i, "J").Value = ComboBox2
    .Protect Password:="toto"
    End With
    Unload Me: MsgBox ("l'objet a été enregistré")
    End Sub
    ps oups oublie des balises

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Cher casefayere,

    Tu me rappelles un psychanalyste que j’ai consulté dans le temps, Gérard

    A un moment donné de l’aventure, il s’est mis à me parler de ses parents décédés en Algérie dont il n’avait pas pu visiter les tombes, à un tel point que je me suis presque mis à le consoler en pleurant avec lui

    Merci mon cher, Kim.

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Chère Laetetia,

    Oups, j’étais sur le point de te poster un message quand j’ai vu ton dernier post, j’allais justement te dire que ton code marche finalement à merveille si on lui ajoute la ligne qu'a proposée casefayere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect UserInterfaceOnly:=True
    Voici donc la version que j’allais te poster :

    http://sd-1.archive-host.com/membres.../laetetia3.xls

    Ce qui donne :

    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
    Private Sub CommandButton1_Click()
    Dim dl As Integer, x As Integer, box As String
    'mettra ton enregistrement à la dernière ligne
    With Sheets("recom.arr")
    .Protect UserInterfaceOnly:=True
    dl = .Range("c65536").End(xlUp).Row + 1
    For x = 1 To 9
       Sheets("recom.arr").Cells(dl, x).Value = Controls("Textbox" & x)
    Next x
       .Cells(dl, "I").Value = arriveerecommande.ComboBox1.Value
       .Cells(dl, "J").Value = arriveerecommande.ComboBox2.Value
    End With
       Unload arriveerecommande
       MsgBox ("l'objet a été enregistré")
    End Sub
    J’opte finalement pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect UserInterfaceOnly:=True
    Car, la difference entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect UserInterfaceOnly:=True
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Unprotect Password:="toto"
    est que :

    1°)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Protect UserInterfaceOnly:=True
    : n’ôte pas la protection après l’enregistrement.
    2°)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Unprotect Password:="toto"
    : ôte automatiquement la protection après l’enregistrement.

    Merci à toi Laetitia, et merci à toi casefayere, vous êtes adorables.

    En essayant de faire les userform de saisie départ sur la base de ce que j'ai cru apprendre, en bidouillant, j'ai fait un massacre, l'enregistrement des données se fait de façon désordonnée.

    J'ai renommé le userform recommandé arrivée, pour pouvoir l'importer après l'avoir exporté, et j'ai changé les les noms des TxtBox et leurs TabIndex pour esayer de maintenir l'ordre, mais en vain, rien de va plus. Ce serait hyper sympa que vous jetiez un coup d'oeil.

    Classeur avec userform départ : http://sd-1.archive-host.com/membres...983057/kim.xls

    Amicalement, Kim.

  4. #24
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re , Kimaos l'ami casefayere le forum
    pour la tabulation ordre textbox1,textbox2,combo1,combo2,textbox3 ect...
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
      'ton code
       ComboBox2.SetFocus
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox2_Change()
    TextBox3.SetFocus
    End Sub
    code bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Dim f, i As Variant, mondico As Object, c As Range, x As long
    Private Sub CommandButton1_Click()
    With Sheets("chrono.dep")
    .Protect UserInterfaceOnly:=True
    x = .Range("c65536").End(xlUp).Row + 1
    For i = 1 To 2: .Cells(x, i) = Controls("Textbox" & i).Value: Next i
    For i = 3 To 9: .Cells(x, i).Offset(0, 2) = Controls("Textbox" & i).Value: Next i
    .Cells(x, "C") = ComboBox1: .Cells(x, "D") = ComboBox2: End With
    Unload Me: MsgBox ("l'objet a été enregistré")
    End Sub
    pour les textboxs il faut pas les renommer ca marcheras plus!!!
    on peut le le faire mais plus complexe avec une boucle
    TypeName("TextBox").ect...
    code pour la feuille chrono.dep

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Bonsoir Laetitia, casefayere, le forum,

    Ton code pour la saisie départ recommandé fonctionne très bien, et dieu sait que j’ai essayé hier soir plein de combines, il faut dire que je n’aurais jamais pu trouver la solution tout seul, merci beaucoup.

    J’ai maintenant juste besoin du code, s’il existe, épargnant de faire entrer manuellement la date dans la textbox correspondante du userform, par exemple un code qui fait apparaître automatiquement la date du jour dans la textbox du userform.

    J’ai lu quelque part qu’il fallait mettre « Range("A1") = CDate(TextBox1.Value) », j’ai essayé de l’insérer un peu partout entre les lignes, mais ça n’a pas marché, alors je ne sais pas si c’est bien ça qu’il faut insérer, et où le placer.

    Amicalement, Kim.

  6. #26
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, le fil le forum simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
    'ton code 
    TextBox1 = Date 
    end if

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Bonsoir Laetitia, casefayere, le forum,

    Grâce à toi, à casefayere et au forum ...

    ... le classeur est prêt à l'emploi.

    Bien à vous tous, Kim.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir Kim, Laetitia, re le forum,

    Kim, j'ai suivi la suite et ce que te proposait Laetitia qui bien plus experte que moi (ça vaut le coup, hein !), je suis content que tu ais résolu tes problèmes alors avant de te faire rappeler aux règles, penses à mettre

    Bonne soirée ou bonne nuit à tou(te)s

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Re Kim, Laetitia,

    Kim, si c'est ça que tu veux, c'est simple, remplace ton code d'initialisation de UF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
       Set f = Sheets("bd")
       Set mondico = CreateObject("Scripting.Dictionary")
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
       Next c
       Me.ComboBox1.AddItem "*"
       For Each i In mondico.items
         Me.ComboBox1.AddItem i
       Next
       Me.ComboBox1.ListIndex = 1 '<= c'est ici
    End Sub
    et ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
       Set f = Sheets("bd")
       Me.ComboBox2.Clear
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If c = Me.ComboBox1 Or Me.ComboBox1 = "*" Then
            Me.ComboBox2.AddItem c.Offset(0, 1)
         End If
       Next c
       Me.ComboBox2.ListIndex = 1'<= c'est ici
    End Sub
    Bonne soirée

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Bonsoir casefayere, laetitia, le forum,

    Ce n'est pas vraiment ce que je cherchais, car l'[*] est restée présente dans la liste même si elle n'apparait pas à l'ouverture, et le formulaire s'ouvre sur CIA et CIA2, alors qu'il devrait normalement/simplement s'ouvrir sur CIA et CIA1 [et sans la présence de l'[*] dans la liste des sociétés].

    Je dois supprimer du code tout ce qui a trait à ce rajout de l'[*], de sorte qu'au lancement du formulaire, il y aura la 1ere société de la liste qui apparaisse en face du 1er collaborateur. Voici le fichier si tu veux essayer :

    http://sd-1.archive-host.com/membres...reCourrier.xls

    Bien à toi, Kim.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    re,
    j'espère avoir compris ceete fois, essayes ces codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
     
       Set f = Sheets("bd")
       Set mondico = CreateObject("Scripting.Dictionary")
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
       Next c
       For Each i In mondico.items
         Me.ComboBox1.AddItem i
       Next
       Me.ComboBox1.Text = "Choisir société"
       TextBox1 = Date
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
       Set f = Sheets("bd")
       Me.ComboBox2.Clear
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If c = Me.ComboBox1 Or Me.ComboBox1 = "*" Then
            Me.ComboBox2.AddItem c.Offset(0, 1)
         End If
       Next c
       Me.ComboBox2.Text = "choisir collaborateur"
    End Sub

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    Casefayere,

    Ton code ne marche pas, car lorsque je déroule la liste des sociétés et choisis n'importe laquelle des sociétés, la liste des collaborateurs reste figée avec la mention choisir collaborateur, ce n’est pas normal.

    Je crois que tu ne devrais pas prendre en compte les mentions « choisir société » et « choisir collaborateur » dans le code, oublie cette idée, fais simplement en sorte de lier la liste des sociétés avec la liste des collaborateurs, sans plus. C’est à moi après, de rajouter dans la base de données les éléments "choisir société" et "choisir collaborateur" en première cellule de chacune des deux colonnes.

    PS : Le code qui lie les 2 listbox [combobox], je l'ai trouvé dans un site, et l'auteur du code a imaginé l'[*] pour faire joli, sauf que ce n'est pas si joli que ça. Normalement, dans sa fonctionnalité basique, le code n'a absolument pas de cette histoire d'[*].

    Bien à toi, Kim.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Je dois être fatigué, il me semble qu'elles étaient déjà liées, mais à l'ouverture, les codes ci-dessous font apparaitre CIA et CIA1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
     
       Set f = Sheets("bd")
       Set mondico = CreateObject("Scripting.Dictionary")
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
       Next c
       For Each i In mondico.items
         Me.ComboBox1.AddItem i
       Next
       Me.ComboBox1.ListIndex = 0
       TextBox1 = Date
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
       Set f = Sheets("bd")
       Me.ComboBox2.Clear
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If c = Me.ComboBox1 Or Me.ComboBox1 = "*" Then
            Me.ComboBox2.AddItem c.Offset(0, 1)
         End If
       Next c
       Me.ComboBox2.ListIndex = 0
    End Sub
    aye! aye! aye! pourvu que ça soit ça que tu demandes

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 24
    Points
    24
    Par défaut
    eurékaaa ! ton code marche

    merci casefayere !

    j'ai même enlevé en plus de la 5em ligne du second code et ça marche tout aussi bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
       Set f = Sheets("bd")
       Me.ComboBox2.Clear
       For Each c In f.Range("A1", f.[A65000].End(xlUp))
         If c = Me.ComboBox1 Then
            Me.ComboBox2.AddItem c.Offset(0, 1)
         End If
       Next c
       Me.ComboBox2.ListIndex = 0
    End Sub
    passe une très bonne nuit, kim.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Aide Classeur Inventaire
    Par Kimaos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/05/2009, 03h57
  2. [XL-2003] Aide recuperation de donnée sur autre classeur
    Par PUARAI dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/05/2009, 15h23
  3. Aide Pour La Creation D'un Classeur
    Par aides dans le forum Excel
    Réponses: 3
    Dernier message: 23/05/2007, 22h03
  4. [VBA-E] Aide verrouiller/déverrouiller cellule & classeur
    Par Alex_Kidd dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2006, 20h41
  5. Aide userform( insertion données dans classeur)
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 19/12/2005, 09h16

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