XL 2019 Macro retour à la ligne dans une cellule

netparty

XLDnaute Occasionnel
Bonjour à tous



Je cherche a modifier mon code mais je ne trouve pas la solution.



Via mon formulaire je choisi une référence de matériel et via ma macro il copie mon choix vers mon listing.

Jusque-là tout va bien , mais j’aimerai pouvoir choisir plusieurs fois une référence et l’insérer de nouveau dans la même cellule sans effacer le contenu existant.

Je voudrai que la macro vérifie si la cellule est non vide et si c’est le cas qu’elle fasse un retour à la ligne pour copier la nouvelle valeur choisie.

Ci-joint mon bout de code



Private Sub Frm_Materiel_copier_indiceA_Click()

'---------------------------------------------------------

'Copier matériels vers LISTING_FT

'Bouton Frm_Materiel_copier_indiceA

'---------------------------------------------------------

Dim LigneActive$

LigneActive = ActiveCell.Row

Cells(LigneActive, 10).Value = Me.textbox3.Value 'Description/commentaire

Cells(LigneActive, 11).Value = Me.textbox6.Value 'Marque

Cells(LigneActive, 12).Value = Me.TextBox5.Value 'référence

Cells(LigneActive, 13).Value = Me.textbox7.Value ' Fournisseur

End Sub



Merci d’avance et bonne journée à tous
 

netparty

XLDnaute Occasionnel
@netparty

Dans ton post #10, tu as écrit : « est-il possible si dans la première cellule il existe
déjà une référence identique de ne pas la copier une deuxième fois. »


Je crois que pour faire ta demande, il faut utiliser seulement la 1ère feuille "DB_IMPORT",
et donc ne pas utiliser la 2ème feuille "LISTING_FT", ni le UserForm "Recherche_materiel" ;
peux-tu le confirmer ? ou faut utiliser la 2ème feuille et / ou le UserForm ?

Si tout se passe sur la 1ère feuille "DB_IMPORT", ta première cellule est donc sur
cette feuille ; mais où ? indique sa référence, par exemple : B5

J'ai bien vu ta colonne G "Référence(s)".

Tu dois préciser quelle est ta demande ; ta couleur jaune ne suffit pas !

Indique les circonstances ; par exemple : je rentre une référence sur la 1ère feuille,
dans telle cellule ; ou : dans le UserForm, je saisis la référence dans la TextBox5
(qui est pour "Référence").

Et ensuite ? est-ce dans la colonne G de la 1ère feuille qu'il faut vérifier si la
Référence existe ou non ? si la Référence existe déjà, on ne fait rien ; mais
si la Référence n'est pas trouvée, on ajoute les données du formulaire ?
c'est ça ? ou autre chose ?

Si c'est ça, précise aussi quelles données du formulaire doivent être copiées ;
toutes les données du formulaire ? ou seulement quelques unes ? précise
lesquelles ! et où ces données du formulaire doivent être copiées ? quelle
est au juste la destination ? sur quelle feuille ? dans quelles cellules ?

soan
Bonjour soan

En fait j'utilise uniquement le formulaire pour entrer les données.

La feuille "DB_IMPORT" ne sert qu'a alimenter le tableau matériel disponible du formulaire.

Donc dans mon formulaire j'ai le choix de choisir plusieurs référence de matériel a intégrer dans mon listing "LISTING_FT", donc je peux avoir des références de matériels qui sont de la même marque et d'autre pas.

Donc dans la case marque il n'y a que les différentes marques mais pas en double puisque je peux avoir 10 références différentes pour la même marque.

Voila je sais pas si c'est claire comme cela.

Merci

Bonne journée
 

soan

XLDnaute Barbatruc
Inactif
Bonjour @netparty,

La feuille "DB_IMPORT" sert uniquement pour remplir le tableau matériel du formulaire :
ok ; donc je n'ai pas besoin de m'occuper de cette feuille pour faire ta demande.

Sur la feuille "LISTING_FT" :

* en cellule I16, il y a un « point » ; je crois que c'est juste une erreur de frappe, et qu'il
ne sert à rien. ;)

* j'ai vu que c'est en cliquant sur le bouton « Recherche matériel » que le formulaire
correspondant apparaît ; mais c'est quelque chose que tu aurais dû me dire ! pense
bien que toi seul connaît vraiment ton fichier Excel, puisque c'est ton projet ; aussi,
ce qui est évident pour toi (y compris le mode d'emploi et le fonctionnement), n'est
pas évident pour une autre personne qui découvre ton fichier !

* dans ton formulaire, 1ère case du haut, que faut-il mettre ? j'ai mis « prise » ; une
liste apparaît dessous ; je sélectionne par exemple la ligne dont la désignation est :
« Prise simple » ; j'ai vu qu'ça a mis les infos de la ligne sélectionnée dans les cases
du bas (en gris clair) ; ça met : « Gamme : 0 » (mais j'vois pas d'où il sort, ce 0) ;
c'est peut-être vraiment la Gamme 0 ; ou c'est peut-être un bug ? bon, et ensuite ?
je fais quoi, moi, dans ton formulaire ? parce que pour tes infos à droite, le point 1,
je l'ai fait ; mais je bloque sur le point 2 : « Sélectionner la fiche technique dans
le listing fiche technique » ; la fenêtre du formulaire est modale : ok ; donc j'peux
cliquer sur la feuille "LISTING_FT" ; et quelle fiche technique j'suis censé pouvoir
sélectionner, vu qu'le tableau est vide, sans aucune donnée ? j'suis bloqué ! :(

* tu as écrit : « dans mon formulaire, j'ai le choix de choisir plusieurs références » ;
tu n'as pas précisé si c'est en même temps ou non ; j'ai essayé de choisir plus
d'une référence (avec un clic sur une 1ère référence, puis Ctrl clic sur une 2ème
référence) : ça ne marche pas ; donc c'est pour une seule référence à la fois ;
ça aussi, tu aurais dû le préciser, même si c'est évident pour toi !

* « je peux avoir des références de matériel qui sont de la même marque » ; ah oui ?
par rapport à quoi ? est-ce des références de matériel qui sont de la même marque
entre elles ? (donc un « lot » de références de matériel de la même marque) ; ou est-
ce entre la marque de la référence de matériel de la ligne qui est sélectionnée dans
le formulaire et ... quoi d'autre ? la marque de la feuille "LISTING_FT", colonne K,
et pour quelle ligne ? mais si c'est ça, comme le tableau est vide de données, c'est
pas possible d'aller bien loin, hein ?

* note bien que si j'peux même pas faire la 2ème étape de ton formulaire, j'peux
difficilement faire la 3ème étape !!!

* même si tu as écrit : « ... qui sont de la même marque et d'autre pas », j'bloque
de la même façon !

* « Donc dans la case marque » ; laquelle ? celle du coin inférieur gauche du
formulaire, n'est-ce pas ? ou c'est une cellule de la feuille "LISTING_FT", K18
ou en dessous ?

* « Donc dans la case marque il n'y a que les différentes marques » : à supposer
que tu parles de la case « Marque » du formulaire : vu qu'au-dessus on ne peut
sélectionner qu'une seule ligne à la fois, il ne peut donc y avoir dans la case
qu'une seule marque, pas plusieurs !

* « il n'y a que les différentes marques mais pas en double puisque je peux avoir
10 références différentes pour la même marque » : là, j'ai rien compris ! mais
c'est peut-être parce que j'suis fatigué d'essayer de deviner c'que tu as voulu
dire au juste !

J'espère que ton prochain post sur ce sujet apportera plus de précisions, à la fois
sur les emplacements de chaque élément dont tu parles (sur le formulaire ou sur
la feuille "LISTING_FT") et sur le mode d'utilisation (= ton mode d'emploi).

Et aussi : envoie un autre fichier, avec des données dans le tableau de la feuille
"LISTING_FT" : A18:M21 ne doit pas être vide ! et si tu peux mettre un peu plus
de 4 lignes (par exemple une dizaine), ça sera mieux !


soan
 
Dernière édition:

netparty

XLDnaute Occasionnel
Bonjour @soan

Merci pour tes commentaires, voila un peu plus d'explication.

J'utilise unique le formulaire pour chercher le matériel, dans la 1er case du haut tu choisi ton matériel par marque(ex: niko, legrand...) et ensuite tu sélectionne se que tu a besoin dans la liste et quand c'est fait tu confirme avec le bouton A.

J'ai mis un exemple dans le fichier pour que sa soit plus claire.

Bonne journée et merci
 

Pièces jointes

  • fichier2.xlsm
    395.3 KB · Affichages: 10

soan

XLDnaute Barbatruc
Inactif
Bonjour @netparty,

ah oui, cette fois, c'est plus clair ! :)

* j'ai augmenté la hauteur de la ligne 19, car je m'en suis servi pour tester la macro.

* la cellule active est en ligne 19 ; laisse comme c'est, et vérifie que c'est ok.

à te lire pour avoir ton avis. ;)


soan
 

Pièces jointes

  • fichier3.xlsm
    411.6 KB · Affichages: 8

netparty

XLDnaute Occasionnel
@soan

J'ai encore une petite demande

En fait dans mon fichier complet j'utilise un premier formulaire (Formulaire_FT) pour afficher toutes les infos de mon listing et dans ce formulaire j'ouvre mon deuxième formulaire choix de matériel.

Alors je me demande comment je peux remplacer insertion dans une cellule par une insertion dans le textbox de mon premier formulaire.

donc dans mon formulaire matériels:
textbox2 vers textbox42 de mon premier formulaire Formulaire_FT
textbox5 vers textbox12 de mon premier formulaire Formulaire_FT
textbox6 vers textbox11 de mon premier formulaire Formulaire_FT
textbox7 vers textbox13 de mon premier formulaire Formulaire_FT

Avec le même principe que précédemment pour les doublons de marque.

Je sais si mes explications sont claires.

Merci

Bonne journée
 

soan

XLDnaute Barbatruc
Inactif
Bonjour @netparty,

Ton fichier n'est pas bon :

Je clique sur le bouton « Recherche matériel », qui affiche Formulaire _FT : ok ;
mais ensuite, quand j'entre niko ou legrand dans la case du coin haut gauche,
ça ne marche plus ! (alors qu'avant ça marchait très bien) ; dans ce UserForm,
comment fais-tu pour afficher ton 2ème formulaire choix de matériel ?

Encore une fois, tu n'es pas assez précis dans ta demande !!! résultat : au lieu
de pouvoir faire ta demande, ça patauge et ça n'avance pas, car je bloque
dès le départ à cause de ton manque de clarté.

Ou peut-être c'est le bon fichier ? mais comme tu n'indiques pas comment utiliser
ton formulaire, ça coince ; je t'avais déjà bien dit : toi seul connaît bien ton projet, et
ce qui est évident pour toi ne l'est pas pour un autre qui connaît mal ton classeur ;
même si j'ai déjà passé du temps dessus, je ne le connaît toujours pas bien.


--------------------------------------------------------------------------------------------

De plus, sur mon PC, à l'ouverture de Formulaire_FT, j'ai ça :

Image.jpg

Est-ce que c'est normal ? je ne pense pas ! :rolleyes: pourquoi y'a ces caractères « » ?
ce signe est une « marque de paragraphe », comme on peut en voir dans Word.

(et dans la case de ton formulaire, ça fait plutôt brouillon ! :p;))


soan
 
Dernière édition:

netparty

XLDnaute Occasionnel
@soan

Bonjour Soan

alors tu doit cliquer sur recherche matériel dans la feuille

Puis dans le formulaire qui s'ouvre (formulaire fiche technique) dans la case superieur gauche on doit choisir un numero de fiche ex. 1
Une fois qu'on a choisir la fiche dans le listebox le formulaire nous indique toutes les infos se rapportant au choix de la fiche technique.
Et ensuite on clic sur le bouton catalogue pour ouvrir le formulaire pour choisir le matériel qu'on a besoin.

Et j'aimerais que le principe soit le même que le 1er post la marque n'as pas de doublon et est séparée par un"-" , les références sont indiquée les une en dessous des autre.
Mais ici du formulaire catalogue vers le formulaire fiche technique
Ici je n'ai besoin de recopier que : Référence, marque et fournisseur

Pour les " " c'est les retour à la ligne dans les cellule, mais je ne sais pas comment ne pas les afficher :(

J’espère être plus clair cet fois

Merci et bonne journée
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonsoir @netparty,

Quand je clique sur le bouton « Catalogue », ça affiche le formulaire "Recherche" :
pour la source des données à copier, c'est OK ; mais pour la destination du coller,
à part que c'est dans Formulaire_FT, c'est vraiment pas clair du tout ! :(

Pour une ligne sélectionnée dans ListBox1 du formulaire « Recherche » :

1) La Désignation, je la met où ? dans le champ "Description matériels" ? je pense que c'est ça,
mais comme c'est juste une ligne étroite, comment veux-tu en mettre plusieurs les unes sous
les autres ? il faudrait une grande case, de la même hauteur que la ligne 18 ou 20 de la feuille
de calcul "LISTING_FT" ; mais si c'est ça, c'est pas à moi de le faire : c'est ton job de faire un
formulaire correct, dont la taille des champs puisse recevoir toutes les données à coller.

2) La Marque, elle va où ? ça a l'air d'être en bas à gauche, dans le champ « Marque », mais :
a) même pb de ligne étroite qu'en 1) ; et b) sur laquelle des 7 pages "Indice A" à "Indice G" ?

3) La Référence, elle va où ? ça a l'air d'être en bas, dans le champ « Modèle / référence »,
et cette fois, pour la hauteur du champ, c'est ok ! par contre, il y a le même problème de
page que décrit en 2) b) ! là aussi, y'a le choix entre 7 pages !

à te lire pour la suite. ;)


soan
 

netparty

XLDnaute Occasionnel
Bonjour @soan

Pour les hauteurs des lignes je vais arranger tout cela quand le code fonctionnera.
Pour les autres 7 pages c'est pour le futur

Formulaire recherche "Référence" vers formulaire fiche technique "Référence"
Formulaire recherche "Marque" vers formulaire fiche technique "Marque"

Les autre champs sont là juste à titre d'information

Bonne journée
 

soan

XLDnaute Barbatruc
Inactif
Bonjour netparty,

tu as écrit : « Pour les autres 7 pages, c'est pour le futur » ; ok, donc pour les
cases de destination du bas, je mettrai dans les cases de la page d'indice A.

pour le point 1) de mon post #27, si ce que j'ai écrit pour la Désignation
est juste, j'aurais aimé voir dans ton post #28 cette confirmation :

« oui, pour la Désignation, c'es ok : c'est bien comme tu l'as écrit »

je vais supposer ceci : « oui, pour la Désignation, c'est bien en haut du formulaire, champ
"Description matériels" ; pour la Marque, c'est bien en bas du formulaire, dans le champ
de même nom (page A) ; pour la Référence, c'est bien en bas aussi, dans le champ
"Modèle / référence" (page A aussi) ».


--------------------------------------------------------------------------------------------------

edit du 28 octobre : c'est avec toutes les infos ci-dessus
que j'ai fait l'exo ; le fichier est dans le post #32. :)


soan
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour
ces caractères sont des sauts de ligne :ils s'affichent comme ça si le textbox n'est pas multiligne
et même selon la version de excel il faudra faire un replace chr(10)/vbcrlf

car les sauts de ligne dans une cellule peuvent être des chr(10) par le wraptext et/ou des vbcrlf réels
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof