transfer ds textbox

P

pierre

Guest
Bonjour à tous
Il me reste 2 petits soucis à resoudre pour finir mes macros
1)J'aimerais transferer tout le contenu du textbox1 dans le textbox2 en 1 seul click, j'y arrive mais 1 par 1.
2) pour un même item, je n'arrive pas à faire la somme dans le texbox2( pour le même item texbox1+texbox2)

Pour mieux comprendre mes besoins, je vous joint
le fichier

merci de votre aide

Pierre

EDITION

Fichier supprimé voir un peu plus bas dans les fils pour le retrouver sans problèmes B)


Message édité par: Pascal76, à: 04/01/2006 08:04
 

Pièces jointes

  • Essai_20060103182935.zip
    48.6 KB · Affichages: 17

myDearFriend!

XLDnaute Barbatruc
Bonsoir Pierre,

A l'ouverture de ton classeur, nous avons le bonheur de voir la barre des statuts, la barre de formule ainsi que la plupart des barres d'outils disparaîtrent... Bravo c'est très joli...
Mais comment vont faire les novices qui vont lire ce fil pour récupérer leurs outils ? Prévoir une procédure qui rétabllit les barres d'outils, c'est bien (procédure 'Unprotect' Module3), mais prévoir son lancement automatique à la sortie du classeur aurait été déjà un moindre mal.

J'informe donc ceux (ou celles) qui ont eu cette fâcheuse surprise qu'ils peuvent retrouver leur barre d'outils en procédant comme suit :
[ol][li]Le classeur étant toujours ouvert, faire ALT + F8 pour afficher la boîte de dialogue Macro.[/li]
[li]Sélectionner 'Unprotect' dans la liste des macros disponibles.[/li]
[li]Cliquer ensuite sur le bouton 'Exécuter'.[/li][/ol]

Par ailleurs, je t'informe que ton Workbook_Open() a juste le temps de faire son tour de passe-passe avant de planter car il n'y a pas (ou plus ) de Feuil1 dans ton classeur ! (De même pour la procédure 'Unprotect').

Quant à ta question : je pense qu'il va falloir être plus clair car, personnellement, je n'ai pas compris ce que tu souhaites réellement...

Cordialement,
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Pierre, bonsoir le forum,

Pas très sympa ton fichier qui plante à l'ouverture après avoir supprimé certaines barres d'outils. Imagine la galère que cela va être pour un utilisateur débutant qui va peiner à remettre son Excel comme avant ! Il faut vraiment éviter ce genre de code quand on soumet un fichier dans le forum.

Je te recommande de remettre un fichier modifié en pièce jointe (que tu auras préalablement testé...) si tu désires avoir de l'aide car pour ma part je ne conseille pas l'ouverture de ton fichier tel qu'il est actuellement....


Édition
Bonsoir Didier... Je suis mort de rire !


Message édité par: Robert, à: 03/01/2006 20:24
 
P

Pierre

Guest
Bonsoir a tous
Désoler pour les désagréments que j' ai pu causer,ceux-ci n'était pas volontaire de ma par.
Veuilez m'en excuser.
J'ai remis un fichier 'propre'.

Pour ma demande:
Dans Usf,onglet 'préparation kit'
Lors de selection dans le combobox1(code article)je remplis le listbox1 avec un calcul venant du textbox31(Qté).

J'aimerais pouvoir tranferer tous les items du listbox1 dans listbox2 en 1 seul click et faire la somme des items identiques
Dans le fichier intial, il y a +de 200 feuilles.

Cdlt


Pierre
 

myDearFriend!

XLDnaute Barbatruc
Re Pierre,
Salut Robert :)

Pierre, pour transférer tous les items du listbox1 dans listbox2 en 1 seul clic, tu peux faire simplement comme ça :
Private Sub CommandButton3_Click()
      ListBox2.List = ListBox1.List
End Sub
Cela dit, je n'ai pas compris l'histoire du total à effectuer...

Par ailleurs, si tu veux poster un fichier 'propre', il convient de :[ol][li]Cliquer sur le bouton EDITER en dessous de ton premier message ci-dessus et de supprimer le lien correspondant à ton fichier joint.[/li]
[li]De poster un nouvel exemplaire 'propre' de ton fichier dans ton prochain message ici même.[/li][/ol]
Cordialement,
 
P

Pierre

Guest
Re
J'avais oublié un espace dans le fchier!
Ce que je faire avec le lisbox2, c'est de le transferer en fichier texte pour être exploité
par SAP
total à effectuer:
Mettre tous les items de plusieurs 'code aricle' dans le listbox2 et si il y a des doublons
aditionner la colonne 4(Qté)

Cdlt
Christian [file name=GestionMSL.zip size=46786]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/GestionMSL.zip[/file]
 

Pièces jointes

  • GestionMSL.zip
    45.7 KB · Affichages: 21

myDearFriend!

XLDnaute Barbatruc
Re Pierre (enfin, je devrais peut-être dire Christian ?),

Si j'ai bien compris ta demande (pas sûr !), je te propose de remplacer ta procédure CommandButton3_Click() par celle-ci :
Private Sub CommandButton3_Click()
Dim i As Byte, i2 As Byte
Dim
TabTemp As Variant
      'Transfert des données de ListBox1 dans un tableau variant temporaire
      TabTemp = ListBox1.List
      For i = 0 To UBound(TabTemp, 1)
            'Si ligne non topée comme doublon
            If Len(TabTemp(i, 0)) > 0 Then
                  If i < UBound(TabTemp, 1) Then
                        For i2 = i + 1 To UBound(TabTemp, 1)
                              'Si doublon trouvé
                              If TabTemp(i2, 0) = TabTemp(i, 0) Then
                                    'Cumuler la valeur
                                    TabTemp(i, 3) = Val(TabTemp(i, 3)) + Val(TabTemp(i2, 3))
                                    'Toper la ligne comme doublon
                                    TabTemp(i2, 0) = ''
                              End If
                        Next i2
                  End If
                  'Ajout de la ligne dans la ListBox2
                  With ListBox2
                        .AddItem TabTemp(i, 0)
                        For i2 = 1 To 3
                              .List(.ListCount - 1, i2) = TabTemp(i, i2)
                        Next i2
                  End With
            End If
      Next i
End Sub
Merci de supprimer le lien pointant sur le mauvais fichier (voir ton premier post ci-dessus et la méthode que je te donne dans mon post de 00:25).

Je te souhaite bonne chance pour la suite.

Cordialement,

Message édité par: myDearFriend!, à: 04/01/2006 03:37
 
P

Pierre

Guest
Re
Merci pour la suppression du fichier.
Ce n'est pas tout a fait ce que je souhaitais
je vais essayer de donner un exemple.

Le début du code fonctionne à savoir pour
le combobox1 a 3BA23197BAED03 et le textbox31 a 10 le calcul se passe correctement dans le listbox1(a savoir colonne2*texbox31) et est bien transferer dans le textbox2 par le CommandButton3_Click() .

Par contre ce que je souhaite lors d'un second click(même code article ou pas) s'est que la 4eme colonne(du listbox2) additionne les 2 valeurs(listbox1+listbox2 pour même item)
ici le 1er item (70+70=140)
en faite dans le listbox2 seul la 1er et la 4ème colonnes m'intéresse

Listbox2

1AB001870064 7 Top 140(70+70)
1AB102900036 1 Top 20 (10+10)
1AB143930003 1 Top 20
1AB152630003 3 Top 60
1AB153560001 1 Top 20
1AB15408ABAA 1 Top 20
1AB160340001 2 Top 40
1AB169000001 1 Top 20
1AB184070001 1 Top 20

J'éspére que ces explications seront suffisantes

Pierre
 

myDearFriend!

XLDnaute Barbatruc
Bonjour Pierre-Christian ;), Robert, Pascal76,

Merci Pascal pour avoir supprimer le premier fichier (comme le dit David, tu es vraiment un modérateur au Top ! :) ). Effectivement, j'avais oublié que pour pouvoir EDITER un post, il faut que l'auteur du post soit inscrit comme membre XLD et identifié (ce qui n'est pa le cas de Pierre... toutes mes excuses au passage pour cette erreur d'aiguillage !).

Pierre-Christian, ci-dessous l'ultime tentative de procédure que je te propose de tester et d'adapter au besoin :
Private Sub CommandButton3_Click()
Dim i As Byte, i2 As Byte
Dim
DejaPresent As Boolean
      With ListBox2
            If .ListCount = 0 Then
                  'Si premier passage : on transfert la totalité des éléments
                  .List = ListBox1.List
            Else
                  'Si autre passage...
                  'Pour chaque élément de ListBox1
                  For i = 0 To ListBox1.ListCount - 1
                        DejaPresent = False
                        'Pour chaque élément de ListBox2
                        For i2 = 0 To .ListCount - 1
                              'Si correspondance trouvée
                              If .List(i, 0) = ListBox1.List(i2, 0) Then
                                    'On fait le cumul de la colonne 4
                                    .List(i, 3) = CInt(.List(i, 3)) + CInt(ListBox1.List(i, 3))
                                    'On tope l'élément comme déjà présent en ListBox2
                                    DejaPresent = True
                              End If
                        Next i2
                        'Si l'élément n'existe pas dans ListBox2
                        If Not DejaPresent Then
                              'On l'ajoute à cette ListBox2
                              .AddItem ListBox1.List(i, 0)
                              For i2 = 1 To 3
                                    .List(.ListCount - 1, i2) = ListBox1.List(i, i2)
                              Next i2
                        End If
                  Next i
            End If
      End With
End Sub
Cordialement,
 
P

Pierre

Guest
bonsoir
Merci beaucoup, l'ultime tentative était la bonne
il a juste fallu changer
If .List(i2, 0) = ListBox1.List(i2, 0) Then
'On fait le cumul de la colonne 4
.List(i2, 3) = CInt(.List(i2, 3)) + CInt(ListBox1.List(i, 3))

merci encore de votre dévouement

A+
Pierre
 

Discussions similaires

Réponses
2
Affichages
546

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz