Décaler d une ligne a l autre VBA
xerox
-
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Actuellement j ai une userform avec plusieurs ComboBox , TextBox et ListBox.
J aimerai savoir quel formule il faut utiliser pour que quand sous ma userform dans une TextBox je choisi une valeur, elle se mette sous une feuille excel par exemple en A2.
Mais je veut aussi que quand une 2 ème fois je choisi sur cette TextBox une valeur, elle se mette en A2 et par conséquent la valeur que j avais choisi en 1er passe en B2 etc....
Merci
Actuellement j ai une userform avec plusieurs ComboBox , TextBox et ListBox.
J aimerai savoir quel formule il faut utiliser pour que quand sous ma userform dans une TextBox je choisi une valeur, elle se mette sous une feuille excel par exemple en A2.
Mais je veut aussi que quand une 2 ème fois je choisi sur cette TextBox une valeur, elle se mette en A2 et par conséquent la valeur que j avais choisi en 1er passe en B2 etc....
Merci
A voir également:
- Décaler d une ligne a l autre VBA
- Partager photos en ligne - Guide
- Décaler une colonne excel - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
Salut,
pour le Textbox par exemple et faire simple, ce code décalera indéfiniment vers la droite la saisie dans le textbox, à adapter pour les autres contrôles
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If [A2] = "" Then
[A2] = TextBox1
Else
[A2].End(xlToLeft).Offset(0, 1) = TextBox1
End If
End Sub
si tu veux simplement déplacer la deuxième saisie en B2 si A2 est renseignée, remplace la ligne [A2].End(xlToLeft).Offset(0, 1) = TextBox1
par [B2] = TextBox1
pour le Textbox par exemple et faire simple, ce code décalera indéfiniment vers la droite la saisie dans le textbox, à adapter pour les autres contrôles
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If [A2] = "" Then
[A2] = TextBox1
Else
[A2].End(xlToLeft).Offset(0, 1) = TextBox1
End If
End Sub
si tu veux simplement déplacer la deuxième saisie en B2 si A2 est renseignée, remplace la ligne [A2].End(xlToLeft).Offset(0, 1) = TextBox1
par [B2] = TextBox1
Salut Dodo,
Je viens de m'appercevoir d'une erreur de saisie de mon code, pour avoir un décale indéfini mieux vaut partir de X2 par exemple et non de A2 qui compliquerait le code et rechercher la première cellule non vide en partant de la droite
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If [A2] = "" Then
[A2] = TextBox1
Else
[X2].End(xlToLeft).Offset(0, 1) = TextBox1
End If
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je viens de m'appercevoir d'une erreur de saisie de mon code, pour avoir un décale indéfini mieux vaut partir de X2 par exemple et non de A2 qui compliquerait le code et rechercher la première cellule non vide en partant de la droite
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If [A2] = "" Then
[A2] = TextBox1
Else
[X2].End(xlToLeft).Offset(0, 1) = TextBox1
End If
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
Il n'y a aucune raison sur ce code qui dit
If [A2] = "" Then (si A2 est vide alors
[A2] = TextBox1 (A2 = textbox)
Else (sinon)
[X2].End(xlToLeft).Offset(0, 1) = TextBox1 (on place la sélection en X2 pour s'arrêter sur la première cellule vide rencontrée après A2 ou B2 si A2 n'est pas vide ou C2 si B2 n'est pas vide etc ...)
Il est possible que le code textbox1 ne corresponde pas à ton textbox qui est 2, 3 ou plus !
si tu ne trouves pas je te ferai un petit montage
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Il n'y a aucune raison sur ce code qui dit
If [A2] = "" Then (si A2 est vide alors
[A2] = TextBox1 (A2 = textbox)
Else (sinon)
[X2].End(xlToLeft).Offset(0, 1) = TextBox1 (on place la sélection en X2 pour s'arrêter sur la première cellule vide rencontrée après A2 ou B2 si A2 n'est pas vide ou C2 si B2 n'est pas vide etc ...)
Il est possible que le code textbox1 ne corresponde pas à ton textbox qui est 2, 3 ou plus !
si tu ne trouves pas je te ferai un petit montage
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour mike,
A lire la demande je me demande s'il ne faut pas plutôt insérer une cellule en A2 pour décaler les saisies précédentes vers la droite et mettre la plus récente toujours en A2 (?)
Et je trouve genant la différence entre le titre (Décaler d une ligne...) et l'exemple qui décale d'une colonne....
Ca serait bien que le demandeur précise ces points
eric
A lire la demande je me demande s'il ne faut pas plutôt insérer une cellule en A2 pour décaler les saisies précédentes vers la droite et mettre la plus récente toujours en A2 (?)
Et je trouve genant la différence entre le titre (Décaler d une ligne...) et l'exemple qui décale d'une colonne....
Ca serait bien que le demandeur précise ces points
eric
bonsoir eriiic et mike,
c'est à priori ca le sujet mais xerox ne sait pas trop ou il en est. Perso j'ai jeté l'éponge sur l'autre topic qu'il avait précédemment ouvert. Je sais que je ne suis pas une flèche en VBA mais tout de meme... : contradictions sur contradictions et pas d'explications claires sur le pourquoi du comment... Donc ne perdez pas trop votre temps...
https://forums.commentcamarche.net/forum/affich-18134714-decaler-d-une-ligne-a-l-autre-vba#2
c'est à priori ca le sujet mais xerox ne sait pas trop ou il en est. Perso j'ai jeté l'éponge sur l'autre topic qu'il avait précédemment ouvert. Je sais que je ne suis pas une flèche en VBA mais tout de meme... : contradictions sur contradictions et pas d'explications claires sur le pourquoi du comment... Donc ne perdez pas trop votre temps...
https://forums.commentcamarche.net/forum/affich-18134714-decaler-d-une-ligne-a-l-autre-vba#2
Dobo,
Ah oui !!! quand même...
Mike,
Tu devrais suivre le lien fourni par dobo à 11:21, c'est très instructif
xerox,
C'est gentil de m'avoir adressé ta réponse mais je ne faisais que relever une différence de lecture entre moi et mike.
Pour ma part je ne participerais pas plus à ce sujet, je privilégie les demandeurs clairs et précis (tu as de très gros progrès à faire), de préférence inscrits sur le site.
De plus je fuis comme la peste ceux qui comme toi postent en double (sans prévenir dans un post ou l'autre) dans un manque total de respect des intervenants, et leur gâchent le temps.
eric
PS: chapeau pour la patience de certains...
Ah oui !!! quand même...
Mike,
Tu devrais suivre le lien fourni par dobo à 11:21, c'est très instructif
xerox,
C'est gentil de m'avoir adressé ta réponse mais je ne faisais que relever une différence de lecture entre moi et mike.
Pour ma part je ne participerais pas plus à ce sujet, je privilégie les demandeurs clairs et précis (tu as de très gros progrès à faire), de préférence inscrits sur le site.
De plus je fuis comme la peste ceux qui comme toi postent en double (sans prévenir dans un post ou l'autre) dans un manque total de respect des intervenants, et leur gâchent le temps.
eric
PS: chapeau pour la patience de certains...
Re,
Pas mal d'occupation, j'ai du mal à suivre les discussions. Lancer plusieurs discussions sur le même sujet et avec des pseudos multiples est contraire à la charte c'est jouer des intervenants bénévoles qui concentrent leurs efforts sur un sujet alors que des membres respectueux attendent une réponse.
Pour ma part mon intervention s'arrêtera là
Mike-31
Pas mal d'occupation, j'ai du mal à suivre les discussions. Lancer plusieurs discussions sur le même sujet et avec des pseudos multiples est contraire à la charte c'est jouer des intervenants bénévoles qui concentrent leurs efforts sur un sujet alors que des membres respectueux attendent une réponse.
Pour ma part mon intervention s'arrêtera là
Mike-31
En fait cela se passe par là... :
https://forums.commentcamarche.net/forum/affich-18103293-vba-rengement-sur-feuille
j'ai proposé qqchose mais qui très certainement perfectible vu mon niveau en VBA....