Déplacer les informations UserForm à Cellule

Bonjour Bonjour ! J'aimerais une fois de plus faire usage de vos connaissences !

J'ai demandé récement des astuces pour mon fichier xls la semaine passé (ici), CousinHub m'à beaucoup aidé sur ce coup ! Merci encore !

Cette fois ci j'aimerais que l'on m'explique comment faire pour prendre une donnée d'un TextBox et l'inserer dans une cellule.

Exemple:

Jai un TextBox que l'on appellera "TbxName" et qui sera fait pour y inserer le nom de famille. TbxName sera relié à la cellule de l'onglet "Description" dans la colonne "name" a la suite des autes données. Cette manoeuvre est l'explication dont j'ai besoin pour continuer mon fichier.

SO PLEASE EXCEL-PRATIQUE, PIMP MY XLS FILE !

Bonjour,

Dans le code du Bouton de Commande, il te faut d'abord déterminer la première cellule vide de ton onglet

Pour ce faire, plusieurs moyens, dont celui-ci :

Dim DerCel As Range
With Sheets("Description")
    Set DerCel = .Range("A65000").End(xlUp)(2)
    DerCel.Value = Me.TbxName
    'si tu veux rajouter sur la même ligne, tu peux utiliser
    'la variable DerCel.Row qui te donne la première ligne vide
    'ou le décalage DerCel.Offset(NbLignes, NCcolonnes)
End With

Edit, Range("A65000") si la colonne des noms est bien en colonne A, à adapter...

Edit2 : code modifié pour rajouter un point (.) devant Range

Bon courage

Dim DerCel As Range
With Sheets("Description")
    Set DerCel = Range("A65000").End(xlUp)(2)
    DerCel.Value = Me.TbxName
    'si tu veux rajouter sur la même ligne, tu peux utiliser
    'la variable DerCel.Row qui te donne la première ligne vide
    'ou le décalage DerCel.Offset(NbLignes, NCcolonnes)
End With

xlUp: Ceci sert a quoi ?

En somme il faut que je Créer une valeur (DerCel) pour chaque txtbox ?

sinon pour le reste je vais tout de suite essayer !

Re-,

Range("A65000").End(xlup) correspond à une remontée de la dernière cellule de la colonne A (j'aurais du mettre A65536), vers le haut, afin d'atterrir sur la dernière cellule remplie (comme si tu faisais un double clic sur le haut de la cellule A65536)

Le (2), juste derrière, te permet de décaler d'une ligne vers le bas, afin d'obtenir la première cellule vide, en partant du bas...

Admettons que tu aies un autre textbox, nommé TbxSurName (comme prénom.....)

Tu peux rentrer cette valeur comme ceci :

Dim DerCel As Range
With Sheets("Description")
    Set DerCel = .Range("A65000").End(xlUp)(2)
    DerCel.Value = Me.TbxName
    DerCel.Offset(0, 1).Value = Me.TbxSurName
    ' ou comme ceci :
    .Cells(DerCel.Row, 2).Value = Me.TbxSurName
    ' le 2 pour dire que c'est dans la 2ème colonne
End With

Attention, dans le code précédent, j'ai oublié de mettre un point (.) devant Range("A65000"), afin de dire à Excel que c'est bien sur l'onglet ("Description") qu'on cherche cette cellule (With Sheets("Description").

Bon courage

Ok, pour l'instant je comprends, mais mon fichier ne fonctionne pas...

j'ai créé un essai rapide pour voir si tout ce passe bien mais pas possible, quelque chose bloque.

Private Sub BtnSave_Click()
Dim DerCel As Range
With Sheets("Movements")
    Set DerCel = .Range("A65536").End(X1Up)(2)
    Cells(DerCel, 2).Value = Me.TbxName
    Cells(DerCel, 3).Value = Me.TbxCAS
    Cells(DerCel, 4).Value = Me.TbxBC
    Cells(DerCel, 5).Value = Me.TbxSupplier
    Cells(DerCel, 6).Value = Me.TbxNSpupplier
    Cells(DerCel, 7).Value = Me.TbxStoPlace
    Cells(DerCel, 8).Value = Me.TbxStock
    Cells(DerCel, 9).Value = Me.TbxURL
End Sub

Je sais pas qu'est ce que je fais de mal mais ca ne marche pas.

Comment avais tu fais pour les modification CousinHub ? peut-tu m'expliquer par mp ?

Re-,

peut-tu m'expliquer par mp ?

le but d'un forum est de faire profiter tout le monde...

Je ne réponds pas aux MP non sollicités...

Que se passe-t-il lorsque tu déroules le code?

As-tu un message d'erreur

Sinon, comme je l'ai dit plus haut, pour te référencer à l'onglet "Movements", il faut rajouter un point (.) devant Range, mais aussi devant Cells...

Et cloturer ton bloc "With", par un "End With"...

comme ceci :

With Sheets("Movements")
    Set DerCel = .Range("A65536").End(X1Up)(2)
    .Cells(DerCel, 2).Value = Me.TbxName
    .Cells(DerCel, 3).Value = Me.TbxCAS
    .Cells(DerCel, 4).Value = Me.TbxBC
    .Cells(DerCel, 5).Value = Me.TbxSupplier
    .Cells(DerCel, 6).Value = Me.TbxNSpupplier
    .Cells(DerCel, 7).Value = Me.TbxStoPlace
    .Cells(DerCel, 8).Value = Me.TbxStock
    .Cells(DerCel, 9).Value = Me.TbxURL
End With
End Sub

Edit, je viens de voir que tu as mis (X1Up), avec un "1"

C'est un l (L minuscule) (XlUp)

j'ai essayé avec le End with mais toujours la meme chose, peut-etre que j'ai fais une erreur ailleurs...

46exportforum.zip (53.46 Ko)

Pour l'information sur le code c'est parce que le topic n'a pas été fait pour ca alors je ne sais pas si il faut que j'ouvre un autre topic pour te poser la question avec les expliquations d'aupart avant ou si je pouvais te le demander plus rapidement.

Re-,

je ne sais pas pourquoi j'écris tout ça.......

Sinon, comme je l'ai dit plus haut, pour te référencer à l'onglet "Movements", il faut rajouter un point (.) devant Range, mais aussi devant Cells...

ainsi que ceci :

Edit, je viens de voir que tu as mis (X1Up), avec un "1"

C'est un l (L minuscule) (XlUp)

C'est bien, de lire en diagonale, mais faut tout prendre, quand même.....

C'est bon ! là j'y arrive !

Ca donne ça:

With Sheets("Movements")
    Set DerCel = .Range("B65536").End(xlUp)(2)
    .Cells(DerCel.Row, 2).Value = Date
    .Cells(DerCel.Row, 3).Value = Time
    .Cells(DerCel.Row, 4).Value = Me.TbxName
    .Cells(DerCel.Row, 5).Value = Me.TbxCAS
    .Cells(DerCel.Row, 6).Value = Me.TbxSupplier
    .Cells(DerCel.Row, 7).Value = Me.TbxNSpupplier
    .Cells(DerCel.Row, 8).Value = Me.TbxStock
    .Cells(DerCel.Row, 9).Value = Me.TbxBC
    .Cells(DerCel.Row, 10).Value = Me.TbxStoPlace
    .Cells(DerCel.Row, 11).Value = Me.TbxURL
    'Personal informations (Juste when a product moves to a customer)
    .Cells(DerCel.Row, 13).Value = Me.TbxTName
    .Cells(DerCel.Row, 14).Value = Me.TbxWBS
    .Cells(DerCel.Row, 15).Value = Me.TbxGL
    .Cells(DerCel.Row, 16).Value = Me.TbxCC
    .Cells(DerCel.Row, 17).Value = Me.TbxNewStoPlace
End With

un peu long et j'ai pas encore finis. Mais merci encore une fois CousinHub !

Rechercher des sujets similaires à "deplacer informations userform"