Problémes cellules écrasées

  • Initiateur de la discussion Initiateur de la discussion Jimmy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jimmy

XLDnaute Nouveau
Bonjour à tous

J'ai un projet VBA dans lequel j'ai plusieurs userform
Dans mon application je dois générer un panier à partir de boutons présents dans différentes userform qui envoient les données sur une feuille excel.

Mon problème c'est que je veux que les données s'inscrivent dans un tableau sans qu'elles ne s'écrasent lorsque je clique sur un bouton d'une autre userform.

Exemple: Je clique sur le bouton commander un Chapeau dans ma 1ere userform, dans mon tableau excel s'affiche donc "Chapeau" dans la cellule "A1"
si je clique plusieurs fois "Chapeau" il s'inscrit à la suite en B1, puis en C1 bref pas de problème.
Si je clique sur un bouton commander d'une autre userform exemple "bonnet" il s'insert en "A1" en place et lieu de "Chapeau" ce que je ne veux pas et que je n'arrive pas a éviter.

Je souhaite qu'il s'inscrive dans la 1er cellule libre soit pour cette exemple "D1", et qu'il n'y ait pas d'écrasement de données.

Voila mon programme:

Pour ma userform 1 et pour ma userform 2 c'est le même seul les noms changent

Const DebTab = "A1"
Dim MC As Range

Private Sub commanderchapeau_Click()
MC.Offset(0, 1).Value = TextBox2.Text
MC.Offset(0, 2).Value = TextBox4.Text
Set MC = MC.Offset(1, 0)
End Sub

Private Sub UserForm_Initialize()
Set MC = Sheets("Panier").Range(DebTab)
While Not (IsEmpty(MC.Value))
Set MC = MC.Offset(1, 0)
Wend
End Sub


Si quelqu'un peut m'aider car je n'y arrive pas à solutionner le problème n'ayant peu d'expérience.
Merci.
 
Re : Problémes cellules écrasées

Salut Jimmy et le forum
Excel fait toujours ce que tu lui demandes et quelques fois ce que tu veux ! 😉

Difficile d'aider quand on a un minimum d'informations : on n'est ni devin, ni télépathe, ni utilisateur de ton fichier !

Comment remets-tu ton panier à zéro ? Je pense que c'est plutôt dans ces codes qu'il faut fouiller.
Fait du pas-à-pas et regarde comment évolue tes variables

Ma manière de travailler n'est pas celle que tu emploies : avant d'inscrire, je calcule l'endroit de l'écriture (cells(Rows.count, "A").end(xlup) (2)) et pas des variables indépendantes qui figent leurs valeurs, alors qu'elles devraient évoluer.

Avec tes explications, difficiles de se faire une idée réelle. Mais je suppose que tu ouvres tous les USF en même temps et que tu les masques si tu n'en as pas besoin. Ça me semble être le seul fonctionnement qui produirait ce genre de fonctionnement, mais il n'y en a aucune mention dans le sujet et je ne suis pas compétent pour en trouver d'autres, surtout avec aussi peut d'informations !
Si effectivement, c'est ça, toutes tes macros "initialize" mettent leurs variables à jour avec la même cellule de référence, et donc les USF écrivent tous à partir du même point, sans tenir compte des modification survenue entretemps.

Plusieurs solutions possibles :
- Ne lancer les USF que un par un, en cas de demande et fermer les autres => la macro Initialize met à jour la référence au moment de l'utilisation de l'USF
- Créer une variable globale pour tous les USF, mise à jour par un seul, le premier ouvert
- Calculer la cellule d'écriture au moment d'écrire.

Mais, comme le sujet ne donne pas d'informations EXPLICITES...
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Retour