Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pour Lsteph: problème sur la macro que vous n'avez passé.

6 réponses
Avatar
luck82
Rebonjour;

Je suis actuellement en train de travailler sur l'userForm que vous n'avez
passé (ci joint http://cjoint.com/?jvsvliaSfc) en l'adaptant à ma
situation.
Toute fois l'userforme bug sur la ligne "ComboBox1.RowSource = Feuil6.Name &
"!" & .Range("a3", .[b65536].End(3)).Address".
Le message d'erreur est: "erreur d'exétion 380 impossible de définir la
propriété Rowsource"... .

En bas de mail le code de l'userForm retouché.
Dans ma situation la table des lots est en feuil2 et la table des produits
en feuil6. D'autre part je dispose de nombreuses plage nommé sur mon fichier
d'ou l'origine du bug je pense!!!
N'est-il pas possible (dans la ligne bugante) de remplacer "Name" par le nom
de la plage nommée?
Voila; je ne sais pas si le problème vient de là mais dans tous les cas je
suis absolument incapable de debuger cette ligne.



Le code:

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

TextBox2.Value = ComboBox1
TextBox3.Value = Feuil6.Range("b3", Feuil6.[b65536].End(3)) _
.Cells(ComboBox1.ListIndex + 1)
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Feuil2.Activate
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With
End Sub

Private Sub Validation_Click()
Dim last As Long, NumLot As Long
last = [a65536].End(xlUp)(2).Row

If Len(ComboBox1) = 0 Then
MsgBox "saisie incomplète"
ComboBox1.SetFocus: Exit Sub
End If
On Error Resume Next
NumLot = CLng(TextBox1)
On Error GoTo 0
If NumLot = 0 Then
MsgBox "saisie non conforme N° Lot "
TextBox1.SetFocus: Exit Sub
End If

Cells(last, 1) = TextBox2
Cells(last, 2) = TextBox3
Cells(last, 3) = NumLot
Unload Me: Call TriTable
End Sub

6 réponses

Avatar
LSteph
Bonjour,

Si je vois ce que tu as fait, je peux regarder mais
le fichier joint est celui que je t'ai envoyé, il n'y a pas de feuil6
dedans...

@+

lSteph

Rebonjour;

Je suis actuellement en train de travailler sur l'userForm que vous n'avez
passé (ci joint http://cjoint.com/?jvsvliaSfc) en l'adaptant à ma
situation.
Toute fois l'userforme bug sur la ligne "ComboBox1.RowSource = Feuil6.Name &
"!" & .Range("a3", .[b65536].End(3)).Address".
Le message d'erreur est: "erreur d'exétion 380 impossible de définir la
propriété Rowsource"... .

En bas de mail le code de l'userForm retouché.
Dans ma situation la table des lots est en feuil2 et la table des produits
en feuil6. D'autre part je dispose de nombreuses plage nommé sur mon fichier
d'ou l'origine du bug je pense!!!
N'est-il pas possible (dans la ligne bugante) de remplacer "Name" par le nom
de la plage nommée?
Voila; je ne sais pas si le problème vient de là mais dans tous les cas je
suis absolument incapable de debuger cette ligne.



Le code:

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

TextBox2.Value = ComboBox1
TextBox3.Value = Feuil6.Range("b3", Feuil6.[b65536].End(3)) _
.Cells(ComboBox1.ListIndex + 1)
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Feuil2.Activate
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With
End Sub

Private Sub Validation_Click()
Dim last As Long, NumLot As Long
last = [a65536].End(xlUp)(2).Row

If Len(ComboBox1) = 0 Then
MsgBox "saisie incomplète"
ComboBox1.SetFocus: Exit Sub
End If
On Error Resume Next
NumLot = CLng(TextBox1)
On Error GoTo 0
If NumLot = 0 Then
MsgBox "saisie non conforme N° Lot "
TextBox1.SetFocus: Exit Sub
End If

Cells(last, 1) = TextBox2
Cells(last, 2) = TextBox3
Cells(last, 3) = NumLot
Unload Me: Call TriTable
End Sub





Avatar
LSteph
...Re,

En tout etat de cause s'il s'agit bien du CodeName de la feuille
et pas seulement le nom d'onglet Name dont on parle:

Il y a plusieurs endroits concernés dans le code donc
dans VBE Edition Remplacer Feuil2 par Feuil6
ensuite seulement
remplacer
Feuil1 par Feuil2

Ce que je lis dans ton post montre que tu as a priori vérifié ce point

Vérifie que la table correspond bien à la même plage de cellules
pour les produits
colonnes A et B titres en ligne 2
première valeur en A3
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With




pour les lots titres en A2:C2.

@+




Rebonjour;

Je suis actuellement en train de travailler sur l'userForm que vous n'avez
passé (ci joint http://cjoint.com/?jvsvliaSfc) en l'adaptant à ma
situation.
Toute fois l'userforme bug sur la ligne "ComboBox1.RowSource = Feuil6.Name &
"!" & .Range("a3", .[b65536].End(3)).Address".
Le message d'erreur est: "erreur d'exétion 380 impossible de définir la
propriété Rowsource"... .

En bas de mail le code de l'userForm retouché.
Dans ma situation la table des lots est en feuil2 et la table des produits
en feuil6. D'autre part je dispose de nombreuses plage nommé sur mon fichier
d'ou l'origine du bug je pense!!!
N'est-il pas possible (dans la ligne bugante) de remplacer "Name" par le nom
de la plage nommée?
Voila; je ne sais pas si le problème vient de là mais dans tous les cas je
suis absolument incapable de debuger cette ligne.



Le code:

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

TextBox2.Value = ComboBox1
TextBox3.Value = Feuil6.Range("b3", Feuil6.[b65536].End(3)) _
.Cells(ComboBox1.ListIndex + 1)
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Feuil2.Activate
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With
End Sub

Private Sub Validation_Click()
Dim last As Long, NumLot As Long
last = [a65536].End(xlUp)(2).Row

If Len(ComboBox1) = 0 Then
MsgBox "saisie incomplète"
ComboBox1.SetFocus: Exit Sub
End If
On Error Resume Next
NumLot = CLng(TextBox1)
On Error GoTo 0
If NumLot = 0 Then
MsgBox "saisie non conforme N° Lot "
TextBox1.SetFocus: Exit Sub
End If

Cells(last, 1) = TextBox2
Cells(last, 2) = TextBox3
Cells(last, 3) = NumLot
Unload Me: Call TriTable
End Sub






Avatar
luck82
Voila un extrait de ma table.
http://cjoint.com/?jwrc0WcnwT


"LSteph" a écrit dans le message de
news:OnqvUVS$
Bonjour,

Si je vois ce que tu as fait, je peux regarder mais
le fichier joint est celui que je t'ai envoyé, il n'y a pas de feuil6
dedans...

@+

lSteph

Rebonjour;

Je suis actuellement en train de travailler sur l'userForm que vous
n'avez


passé (ci joint http://cjoint.com/?jvsvliaSfc) en l'adaptant à ma
situation.
Toute fois l'userforme bug sur la ligne "ComboBox1.RowSource Feuil6.Name &
"!" & .Range("a3", .[b65536].End(3)).Address".
Le message d'erreur est: "erreur d'exétion 380 impossible de définir la
propriété Rowsource"... .

En bas de mail le code de l'userForm retouché.
Dans ma situation la table des lots est en feuil2 et la table des
produits


en feuil6. D'autre part je dispose de nombreuses plage nommé sur mon
fichier


d'ou l'origine du bug je pense!!!
N'est-il pas possible (dans la ligne bugante) de remplacer "Name" par le
nom


de la plage nommée?
Voila; je ne sais pas si le problème vient de là mais dans tous les cas
je


suis absolument incapable de debuger cette ligne.



Le code:

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

TextBox2.Value = ComboBox1
TextBox3.Value = Feuil6.Range("b3", Feuil6.[b65536].End(3)) _
.Cells(ComboBox1.ListIndex + 1)
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Feuil2.Activate
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With
End Sub

Private Sub Validation_Click()
Dim last As Long, NumLot As Long
last = [a65536].End(xlUp)(2).Row

If Len(ComboBox1) = 0 Then
MsgBox "saisie incomplète"
ComboBox1.SetFocus: Exit Sub
End If
On Error Resume Next
NumLot = CLng(TextBox1)
On Error GoTo 0
If NumLot = 0 Then
MsgBox "saisie non conforme N° Lot "
TextBox1.SetFocus: Exit Sub
End If

Cells(last, 1) = TextBox2
Cells(last, 2) = TextBox3
Cells(last, 3) = NumLot
Unload Me: Call TriTable
End Sub







Avatar
LSteph
Bonjour Luck,

Voici qui devrait aller mieux

http://cjoint.com/?jwuHn2nJd1

MAIS

Attention lis bien tout!

Essentiellement, tu as dû vouloir copier le userform directement d'un
projet à l'autre. Cela pose des soucis de compilation et de références.
(Bon faut le savoir...)
En le refaisant soi-même ( le UF) ou en procédant par export import
cela refonctionne à ce niveau mais il ya d'autres choses.

Pour le principal, attention tu avais modifié ceci:

With Feuil6
ComboBox1.RowSource = "'" & Feuil6.Name & "'!" & .Range("a3",
.[b65536].End(3)).Address
End With

Conséquence le nom de la feuille ne figurant plus dans le rowsource
c'est l'adresse seule donc de la plage de la feuille active qui est
prise à la place de celle de Feuil6
J'ai dû ajouter des quotes "'" parceque tu mets des espaces dans tes
noms d'onglets. (Les espaces, signes, caractères accentués provoquent
des caprices informatiques quand on les utilise dans les noms de
fichiers, champs ou autres références) en VBA ces quotes permettent de
gèrer cela.

J'ai dû aussi modifier un peu la présentation pour l'objectif alors
Attention pour le bon foctionnement de conserver la ligne vide au dessus
de la table.

Autre point important:
cette table est bien plus grande que ce que supposait ta demande
et reste à evisager que toutes ces colonnes à droite sont remplies après
la création du lot..
A priori je n'avais pas gèré cette hypothèse mais du moment que tout est
attenant , cela à l'air de suivre,...

Pour le reste je n'ai pas approfondi mais attention tu as des #ref et
autres petits soucis de formule.

Dernière précision: Il faudra étendre la mefc à raison du nombre de
lignes à occuper par les lots.

J'attends tes observations...

Cordialement.

--
LSteph









Voila un extrait de ma table.
http://cjoint.com/?jwrc0WcnwT


"LSteph" a écrit dans le message de
news:OnqvUVS$
Bonjour,

Si je vois ce que tu as fait, je peux regarder mais
le fichier joint est celui que je t'ai envoyé, il n'y a pas de feuil6
dedans...

@+

lSteph

Rebonjour;

Je suis actuellement en train de travailler sur l'userForm que vous
n'avez


passé (ci joint http://cjoint.com/?jvsvliaSfc) en l'adaptant à ma
situation.
Toute fois l'userforme bug sur la ligne "ComboBox1.RowSource > Feuil6.Name &
"!" & .Range("a3", .[b65536].End(3)).Address".
Le message d'erreur est: "erreur d'exétion 380 impossible de définir la
propriété Rowsource"... .

En bas de mail le code de l'userForm retouché.
Dans ma situation la table des lots est en feuil2 et la table des
produits


en feuil6. D'autre part je dispose de nombreuses plage nommé sur mon
fichier


d'ou l'origine du bug je pense!!!
N'est-il pas possible (dans la ligne bugante) de remplacer "Name" par le
nom


de la plage nommée?
Voila; je ne sais pas si le problème vient de là mais dans tous les cas
je


suis absolument incapable de debuger cette ligne.



Le code:

Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub ComboBox1_Change()

TextBox2.Value = ComboBox1
TextBox3.Value = Feuil6.Range("b3", Feuil6.[b65536].End(3)) _
.Cells(ComboBox1.ListIndex + 1)
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Feuil2.Activate
With Feuil6
ComboBox1.RowSource = Feuil6.Name & "!" & .Range("a3",
.[b65536].End(3)).Address
End With
End Sub

Private Sub Validation_Click()
Dim last As Long, NumLot As Long
last = [a65536].End(xlUp)(2).Row

If Len(ComboBox1) = 0 Then
MsgBox "saisie incomplète"
ComboBox1.SetFocus: Exit Sub
End If
On Error Resume Next
NumLot = CLng(TextBox1)
On Error GoTo 0
If NumLot = 0 Then
MsgBox "saisie non conforme N° Lot "
TextBox1.SetFocus: Exit Sub
End If

Cells(last, 1) = TextBox2
Cells(last, 2) = TextBox3
Cells(last, 3) = NumLot
Unload Me: Call TriTable
End Sub











Avatar
luck82
Tous marche bien à priorie.
Merci beaucoup te n'enlève une gros épine du pied; j'allai abandonné.

Essentiellement, tu as dû vouloir copier le userform directement d'un
projet à l'autre.
En effet. j'ai bien essayé l'expot-import mais l'import ne voullait pas

marché! Et comme la création de l'userform ne crée dans de code je ne suis
bien pas de soucis.

Pour le principal, attention tu avais modifié ceci: "ComboBox1.RowSource
=..."

En effet j'ai essayé plein de version différentes... .
Avec l' explication de cette ligne de code, je comprends bien mieux commant
marche cette ligne et quoi le "!".

cette table est bien plus grande que ce que supposait ta demande...
En effet; le fichier approche en réalité les 5 Mo (j'ai du le faire maigrir

pour cjoint) d'ou ces #ref... . Mais pas de soucis pour ca.
Seul les lignes produit, ref et lot sont importantes.
Pour le module1(module de trie) je vais le remplacer par un trie a partir
d'une selection (plage A3:P1000 par exemple)... afin de conserver la
cohérence de la table en cas de ligne vide dans d'autre colonnes.

Dernière précision: Il faudra étendre la mefc à raison du nombre de
lignes à occuper par les lots.
C'est pas nécessaire puisque de toute façon ces lignes sont pas toujours

renseignées et trés souvant bien après la création du lot (le renseignement
se fera en manuelle).

Voilà; je vais approfondir tous ça après ma petite séance de sport
dominical; toute la journée devant le PC ca arrondie les formes et embrume
la tête.

Bonne journée

Avatar
LSteph
Bonjour,

Voilà; je vais approfondir tous ça après ma petite séance de sport
dominical; toute la journée devant le PC ca arrondie les formes et
embrume

la tête.


;o))
Excel.lent conseil! Mais hélas cela fait déjà trop longtemps que j'y
pense,...
.. je m'en vais quand même remuer tout cela!

--
LSteph


Tous marche bien à priorie.
Merci beaucoup te n'enlève une gros épine du pied; j'allai abandonné.

Essentiellement, tu as dû vouloir copier le userform directement d'un
projet à l'autre.
En effet. j'ai bien essayé l'expot-import mais l'import ne voullait pas

marché! Et comme la création de l'userform ne crée dans de code je ne suis
bien pas de soucis.

Pour le principal, attention tu avais modifié ceci: "ComboBox1.RowSource
=..."

En effet j'ai essayé plein de version différentes... .
Avec l' explication de cette ligne de code, je comprends bien mieux commant
marche cette ligne et quoi le "!".

cette table est bien plus grande que ce que supposait ta demande...
En effet; le fichier approche en réalité les 5 Mo (j'ai du le faire maigrir

pour cjoint) d'ou ces #ref... . Mais pas de soucis pour ca.
Seul les lignes produit, ref et lot sont importantes.
Pour le module1(module de trie) je vais le remplacer par un trie a partir
d'une selection (plage A3:P1000 par exemple)... afin de conserver la
cohérence de la table en cas de ligne vide dans d'autre colonnes.

Dernière précision: Il faudra étendre la mefc à raison du nombre de
lignes à occuper par les lots.
C'est pas nécessaire puisque de toute façon ces lignes sont pas toujours

renseignées et trés souvant bien après la création du lot (le renseignement
se fera en manuelle).

Voilà; je vais approfondir tous ça après ma petite séance de sport
dominical; toute la journée devant le PC ca arrondie les formes et embrume
la tête.

Bonne journée