Insertion d'une ou plusieurs lignes via userform

vassili

XLDnaute Occasionnel
Bonjour,

Voila j'ai un petit problème qui est le suivant. J'arrive a ajouter des lignes en fonction de combien j'en veut mais j'aimerais faire reussir:

- a insérer les informations des diverses combobox à la première ligne vide avec la prise en compte du nombre de ligne à insérer dans la textbox du userform.

Et aussi:

- a insérer les divers numéros de produits c'est à dire le produit de type 4, si je veut commander 5 produits de type 4 il faut que cela puisse m'afficher les numéro de produits 5, 6, 7, 8 et 9 (c'est plus compréhensible lorsque l'on a le fichier sous les yeux).

Je vous ais ci-joint le fichier,

Voir la pièce jointe Test.xls

Si vous avez des questions n'hésiter pas :)

Cordialement
 

Fichiers joints

Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

Salut vassili et le forum
Quelques petits rappels :
Les gens ne répondent que quand ça leur chante, mais c'est pas cher ^^
Si les gens ne répondent pas :
- soit ils t'en veulent méchamment, et il n'y a pas grand chose à faire (mais avec l'anonymat, c'est rare)
- soit ils ne peuvent pas répondre : Parce que la question dépasse leurs compétences... ou qu'ils ne la comprennent pas.
Ce qui est évident ne l'est que pour ceux qui travaillent avec le fichier. Pour ceux qui essaient de dépanner, ce qui n'est pas expliqué n'existe pas.
Ton fichier de test :
Un USF avec 3 combobox, avec des listes vides, deux bouton dont un renvoie à une macro qui fait référence à une Textbox qui n'existe pas et qui a un code obsolète... et on doit trouver quoi ?
- a insérer les informations des diverses combobox à la première ligne vide avec la prise en compte du nombre de ligne à insérer dans la textbox du userform.
:confused: désolé, je n'ai pas été initié à ce langage ésotérique.
A+
 

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

bonjour Vassili,Gorfael
tu as de quoi méditer avec la réponse de Gorfael(et je pense qu'il a raison)
mon truc c'est aider donc j'aide
tu as du code d'après ce que j'ai compris
à bientôt
 

Fichiers joints

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Bonjour à tous,

Je suis désolé de mettre mal exprimer (j'ai pas l'habitude de poster sur un forum ^^), merci à Gorfael et bebere pour leurs conseils et leurs réponses.

Ce que je voudrais faire avec ce fichier est la chose suivante:

Effectuer une incrémentation automatique pour le type de produit (voir l'exemple sur la feuil1 du fichier excel)
Et ajouter n ligne dans la textbox du userform (du fichier joint toujours) et ces lignes apparaitrons à la première ligne vide

Merci par avance,

Vassili
 

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

bonjour Vassili
par rapport à la réponse,dis ce qui ne va pas
l'as tu vue au moins
à bientôt
 

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Salut bebere

Oui j'ai vu ton fichier avec les combobox qui fonctionne en effet et merci d'avoir corrigé le tire ;) et a partir de là j'aimerais que le fichier execute les choses que j'ai marqué dans un post précédent

A bientot
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

Vassili
toujours un point d'? pour comprendre
le code extrait le chiffre de pièce1
et l'incrémente autant de fois que le nbre de la textbox
si pièce est 1 et nb textbox= 3 tu auras en d 2,3,4
à bientôt
 

Fichiers joints

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Merci, bebere c'est ce que je voulait mais sauf que:
si je décide d'ajouter plusieurs lignes plusieurs fois, l'incrémentation recommence à partir de 2 alors que je voudrais que cela s'effectue à la suite.

Je te montre par un exemple ;):

--Premiere ajout--
produit1 piece1 fournisseurs1 2
produit1 piece1 fournisseurs1 3
produit1 piece1 fournisseurs1 4
--Deuxième ajout--
produit1 piece1 fournisseurs1 2
produit1 piece1 fournisseurs1 3
produit1 piece1 fournisseurs1 4
produit1 piece1 fournisseurs1 5
produit1 piece1 fournisseurs1 6

Dans l'optique de ce que j'aimerais que cela produise :) :

--Premiere ajout--
produit1 piece1 fournisseurs1 2
produit1 piece1 fournisseurs1 3
produit1 piece1 fournisseurs1 4
--Deuxième ajout--
produit1 piece1 fournisseurs1 5
produit1 piece1 fournisseurs1 6
produit1 piece1 fournisseurs1 7
produit1 piece1 fournisseurs1 8
produit1 piece1 fournisseurs1 9

Merci d'avance ;)
 

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

bonjour Vassili
numprod= max+1 colonne d en fonction des choix a,b,c
je me demande si tu n'aurais pas intéret à faire fournisseur,produit,pièce
à bientôt
 

Fichiers joints

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Merci bebere sa marche très bien il fallait y penser ;) mais j'ai un autre problème, il faudrait que je lie l'incrémentation avec le type de produit et que cela fasse partie d'une même colonne lorsque j'ajoute des lignes dans le userform

Pour être plus clair voici un exemple:

Avant:

--Première ajout--
produit1 piece1 fournisseurs1 2
produit1 piece1 fournisseurs1 3
produit1 piece1 fournisseurs1 4
--Deuxième ajout--
produit1 piece1 fournisseurs1 5
produit1 piece1 fournisseurs1 6
produit1 piece1 fournisseurs1 7
produit1 piece1 fournisseurs1 8
produit1 piece1 fournisseurs1 9

Après:

--Première ajout--
produit1-2 piece1 fournisseurs1
produit1-3 piece1 fournisseurs1
produit1-4 piece1 fournisseurs1
--Deuxième ajout--
produit1-5 piece1 fournisseurs1
produit1-6 piece1 fournisseurs1
produit1-7 piece1 fournisseurs1
produit1-8 piece1 fournisseurs1
produit1-9 piece1 fournisseurs1

Je te remercie d'avance ;)
 
Dernière édition:

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Bonjour,

Voilà j'ai fais ce code qui permet d'incrémenter ce que j'ai écris dans le post précédent, seul problème l'incrémentation ne ce fais plus lorsque tu ajoute des lignes. Voici le code ci-dessous:

Code:
Sub AjoutLigne()

    Dim Dline As Integer
	Dim NumProduit As Integer
	Dim Rep As Integer
	Dim Cel As Range
	Dim LesPostulants As Object
	Dim I As Byte
	Dim Tmp
   
With UserForm1
a = .ComboBox1
b = .ComboBox2
c = .ComboBox3
Rep = .TextBox1
End With

    With Sheets("Feuil1")
        Dline = .Range("A65500").End(xlUp).Row + 1
       NumProduit = Evaluate("MAX((A2:A" & Dline & "=""" & a & """)*(B2:B" & Dline & "=""" & b & """)*(C2:C" & Dline & "=""" & c & """)*(D2:D" & Dline & "))") + 1
            Do While Rep > 0
                .Range("A" & Dline).Value = UserForm1.ComboBox1.Value
                .Range("B" & Dline).Value = UserForm1.ComboBox2.Value
                .Range("C" & Dline).Value = UserForm1.ComboBox3.Value
                .Range("D" & Dline).Value = NumProduit
               NumProduit = NumProduit + 1
                Dline = Dline + 1
                Rep = Rep - 1
            Loop
    End With

	Set LesPostulants = CreateObject("Scripting.Dictionary")
		For Each Cel In Range("A2:A" & [A65000].End(xlUp).Row)
			Tmp = Split(Cel.Value, "-")
				If Not LesPostulants.Exists(Tmp(0)) Then
					LesPostulants.Add Tmp(0), Tmp(0)
				If InStr(1, Cel, "-") = 0 Then Cel.Value = Cel.Value & "-0"
					Else
					Cel.Value = Cel.Value & "-" & Application.CountIf(Columns(1), Tmp(0) & "-*")
				End If
		Next Cel
	
End Sub
Voila ce que cela m'affiche :

produit1-0 piece1 fournisseurs1 1
produit1-1-12 piece2 fournisseurs1 2
produit2-0 piece1 fournisseurs1 1
produit2-1-3 piece2 fournisseurs1 2
produit2-2-3 piece3 fournisseurs1 3
produit3-0 piece1 fournisseurs2 1
produit3-1-2 piece2 fournisseurs2 2
produit4-0 piece1 fournisseurs1 1
produit4-1-2 piece4 fournisseurs4 2
produit1-2-12 piece1 fournisseurs1 1
produit1-3-12 piece1 fournisseurs1 2
produit1-4-12 piece1 fournisseurs1 3
produit1-5-12 piece1 fournisseurs1 4
produit1-6-12 piece1 fournisseurs1 5
produit1-7-12 piece1 fournisseurs1 1
produit1-8-12 piece1 fournisseurs1 2
produit1-9-12 piece1 fournisseurs1 3
produit1-10-12 piece1 fournisseurs1 4
produit1-11-12 piece1 fournisseurs1 5
produit1-12 piece1 fournisseurs1 1
produit1-13 piece1 fournisseurs1 2
produit1-14 piece1 fournisseurs1 3
produit1-15 piece1 fournisseurs1 4
produit1-16 piece1 fournisseurs1 5
produit1 piece1 fournisseurs1 1
produit1 piece1 fournisseurs1 2
produit1 piece1 fournisseurs1 3
produit1 piece1 fournisseurs1 4
produit1 piece1 fournisseurs1 5
produit1 piece1 fournisseurs1 6
produit1 piece1 fournisseurs1 7
produit1 piece1 fournisseurs1 8



Merci d'avance et passe un bon réveillon :)
 
Dernière édition:

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

J'ai trouvé! ^^

Code:
Sub AjoutLigne()

    Dim Dline As Integer
    Dim NumProduit As Integer
    Dim Rep As Integer
    Dim n As Long
   
With UserForm1
a = .ComboBox1
b = .ComboBox2
c = .ComboBox3
Rep = Val(.TextBox1.Value)
End With

    With Sheets("Feuil1")
        Dline = .Range("A2").End(xlDown).Row + 1
       NumProduit = 0
            For n = 1 To Dline
                If Left$(.Cells(n, 1).Value, Len(a)) = a Then NumProduit = NumProduit + 1
            Next
            Do While Rep > 0
                .Cells(Dline, 1).Value = UserForm1.ComboBox1.Value & "-" & NumProduit
                .Cells(Dline, 2).Value = UserForm1.ComboBox2.Value
                .Cells(Dline, 3).Value = UserForm1.ComboBox3.Value
               NumProduit = NumProduit + 1
                Dline = Dline + 1
                Rep = Rep - 1
            Loop
    End With
    
End Sub
 

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

bonjour Vassili
tu pouvais crier eureka,j'ai trouvé
bons réveillons chez toi
à bientôt
 

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

bonjour bebere et les autres bonne année!

J'aurai deux questions a vous poser:

Utiliser le fichier Voir la pièce jointe TestVassili.xls

-Comment faire une combobox qui récupére des données dans la colonne A d'une autre feuille et que l'information s'insere à la premiere ligne vide de la première feuille par exemple

-Comment faire pour que le chargement des combobox soient moins long lorsque l'on a beaucoup de lignes dans la feuille principale de données

Merci d'avance

Vassili
 

Fichiers joints

Dernière édition:

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

bonjour bebere,

merci beaucoup de l'aide :) mais il y a un soucis. En effet, j'aimerais que l'information que je selectionne via la combobox4 ce mette avec les informations que j'ai selectionner dans les autres combobox à la première ligne vide qui sera ajouter dans la Feuil1 et sans bouton valider (que l'on ait juste besoin de cliquer sur Commandbutton1 et que la ligne s'ajoute automatiquement).

Merci beaucoup :),

Vassili
 

vassili

XLDnaute Occasionnel
Re : Insertion d'une ou plusieurs lignes via userform

Bonjour bebere,

non en faite j'ai mal formuler ma demande d'aide c'est pour cela que j'ai mis cela par la suite ;):

merci beaucoup de l'aide mais il y a un soucis. En effet, j'aimerais que l'information que je selectionne via la combobox4 ce mette avec les informations que j'ai selectionner dans les autres combobox à la première ligne vide qui sera ajouter dans la Feuil1 et sans bouton valider (que l'on ait juste besoin de cliquer sur Commandbutton1 et que la ligne s'ajoute automatiquement).
A bientot
 

Bebere

XLDnaute Barbatruc
Re : Insertion d'une ou plusieurs lignes via userform

Bonjour Vassili
With Sheets("Feuil1")
Dline = .Range("A65500").End(xlUp).Row + 1
.Range("A" & dline) = UserForm1.ComboBox4
dline=dline+1
ces 2 lignes tu les supprimes
L = .Range("A65536").End(xlUp).Row + 1
.Range("A" & L) = UserForm1.ComboBox4
si je veux faire quelque chose,je sors mes mains de mes poches
à bientôt
 

Discussions similaires


Haut Bas