USF et incrémentation

Laurent313131

XLDnaute Occasionnel
Bonjour,

Me voici de nouveau bloqué avec mes USF. J'ai vraiment du mal avec les incrémentations :confused:

Je voudrais qu'à chaque fois que j'ouvre mon USF , il y ait un saut de ligne dans mon ficher excel de façon à ce que à la première ouverture la valeur affichée dans la textbox6, s'inscrive en J17, puis à la seconde ouverture en J18 ... ...

Merci pour votre aide !
 

Pièces jointes

  • USF4.xlsm
    26.3 KB · Affichages: 59

fanfan38

XLDnaute Barbatruc
Re : USF et incrémentation

Bonjour
Ajoute cette macro dans ton userform
Private Sub UserForm_Activate()
lig = Range("a65536").End(xlUp).Row + 1
UserForm4.TextBox1.Value = Cells(lig, 1).Value
UserForm4.TextBox2.Value = Cells(lig, 2).Value
UserForm4.TextBox3.Value = Cells(lig, 3).Value
UserForm4.TextBox4.Value = Cells(lig, 4).Value
UserForm4.TextBox5.Value = Cells(lig, 5).Value
End Sub

A+ François
 

Kotov

XLDnaute Impliqué
Re : USF et incrémentation

Bonjour Laurent, Fanfan,

Juste une petite correction :
lig = Range("a65536").End(xlUp).Row + 1 ne donnera pas la bonne valeur : du texte
est présent sur la 33ème ligne

Par ailleurs, tes cellules fusionnées perturbent ton projet.
J'ai modifié ton fichier en ôtant ces cellules fusionnées à l'exception des titres de colonnes.
Code:
Private Sub CommandButton1_Click()
Dim dl1 As Long ' dernière ligne
With Sheets("Feuil5")
    dl1 = .Cells(32, 1).End(xlUp).Row + 1
    .Cells(dl1, 4) = TextBox1.Value
    .Cells(dl1, 5) = TextBox2.Value
    .Cells(dl1, 6) = TextBox3.Value
    .Cells(dl1, 7) = TextBox4.Value
    .Cells(dl1, 8) = TextBox5.Value
    .Cells(dl1, 9) = TextBox6.Value
End With
End Sub

je te joins ton projet modifié. Il te reste à adapter les coordonnées de tes cellules qui reçoivent les valeurs des Textbox.
Et conseil : évites autant que possible les cellules fusionnées quand elles recoivent des valeurs en VBA.

A+
Kotov
 

Pièces jointes

  • Copie de USF4.xlsm
    27.9 KB · Affichages: 56

Laurent313131

XLDnaute Occasionnel
Re : USF et incrémentation

Merci pour vos réponses.
En fait je voudrais que seule la valeur de la textbox6 s'inscrivent en J 16. Les autres ne doivent apparaitre nulle part.
Aussi, lorsque je reouvre mon USf la valeur de la textbox6, doit s'inscrire en J17 (celle de J16 doit rester visible). Si je le re ouvre à nouveau, elle doit s'inscrire en J18 (les valeurs en ligne 16 et 17 doivent rester visibles ... ...). En fait il faut qu'il y ait un saut de ligne à chaque fois que je lance mon USF de façon à ne pas effacer les valeurs précédentes

J'espère ne pas être trop "lourd" à demander tout ça :p

Ps : Merci Kotov pour les cellules fusionnées...
 

Laurent313131

XLDnaute Occasionnel
Re : USF et incrémentation

Pour info, j'avais ce code au départ :

Private Sub CommandButton2_Click()
Unload UserForm4
End Sub

Private Sub TextBox1_Change()
TextBox1 = UserForm4.TextBox1
End Sub

Private Sub TextBox2_Change()
TextBox2 = UserForm4.TextBox2
End Sub

Private Sub TextBox3_Change()
TextBox3 = UserForm4.TextBox3
End Sub

Private Sub TextBox4_Change()
TextBox4 = UserForm4.TextBox4
End Sub

Private Sub TextBox5_Change()
TextBox6 = (CDbl(TextBox1) - TextBox5) / CDbl(TextBox1) * 100
Range("J17") = TextBox6
End Sub

comme vous pouvez le voir, les 5 premières textbox ne s'affichent pas dans ma feuille Excel. Seule la valeur de la textbox6 s'affiche en J17. Ce que je veux c'est que quand je relance mon USf, la nouvelle valeur de la textbox6 (qui est calculée en fonction des valeurs des textbox1 et 5) s'affiche en J18 puis en J19 si je le relance une nouvelle fois. Le code ne doit pas effacer celles déjà présentes en J quelque'chose...

Dites moi si c'est pas clair.
 

Laurent313131

XLDnaute Occasionnel
Re : USF et incrémentation

Bonsoir,

J'ai refait un code qui incrémente bien d'une ligne à chaque fois que je lance mon USF. Cependant, les valeurs de toutes les textbox s'affichent dans ma feuille excel alors que je voudrais que seule la valeur de la textbox 6 s'affiche (en colonne J).

Si je remplace .Range("A" & dl1) = TextBox1.Value par TextBox1 = TextBox1.Value,
la valeur de cette textbox ne s'affiche plus mais l'incrémentation ne se fait plus !

Je sais plus quoi faire :) !


Voila le code :

Private Sub CommandButton1_Click()
Unload UserForm3
End Sub

Private Sub CommandButton2_Click()
Dim dl1 As Long ' dernière ligne
With Sheets("Feuil7")
dl1 = .Range("a65536").End(xlUp).Row + 1
.Range("A" & dl1) = TextBox1.Value
.Range("B" & dl1) = TextBox2.Value
.Range("C" & dl1) = TextBox3.Value
.Range("D" & dl1) = TextBox4.Value
.Range("E" & dl1) = TextBox5.Value
TextBox6 = (CDbl(TextBox1) - TextBox5) / CDbl(TextBox1) * 100
.Range("F" & dl1) = TextBox6.Value

End With
End Sub
 

fanfan38

XLDnaute Barbatruc
Re : USF et incrémentation

Bonjour,

Si tu mets les lignes ci dessous tu dis à excel de remplir toutes les cases...

.Range("A" & dl1) = TextBox1.Value
.Range("B" & dl1) = TextBox2.Value
.Range("C" & dl1) = TextBox3.Value
.Range("D" & dl1) = TextBox4.Value
.Range("E" & dl1) = TextBox5.Value
TextBox6 = (CDbl(TextBox1) - TextBox5) / CDbl(TextBox1) * 100
.Range("F" & dl1) = TextBox6.Value

Donc si tu ne veux remplir que la colonne F tu ne dois mettre que
TextBox6 = (CDbl(TextBox1) - TextBox5) / CDbl(TextBox1) * 100
.Range("F" & dl1) = TextBox6.Value

A+ François
 

Kotov

XLDnaute Impliqué
Re : USF et incrémentation

Bonjour,

Désolé, absent hier, je n'ai pu poursuivre sur ce fil.

Dans ton tableau, tu souhaites inscrire la valeur de ta Textbox6 sur la première cellule vide de ta colonne J (attention dans ton fichier que j'ai modifié, ce n'est plus la colonne J mais la colonne I)

La valeur numérique en rouge correspond à la colonne (J=10)

Code:
Private Sub CommandButton1_Click()
Dim dl1 As Long ' dernière ligne
With Sheets("Feuil5")
    dl1 = .Cells(32, [b][color=red]10[/color][/b]).End(xlUp).Row + 1
        .Cells(dl1, [b][color=red]10[/color][/b]) = TextBox6.Value
End With
End Sub

A+
Kotov
 

Lii

XLDnaute Impliqué
Re : USF et incrémentation

Bonjour Tous,

Je ne comprends pas bien ce que tu fais :
- à quoi servent les saisies 2, 3 et 4 ?
- veux-tu garder-tu l'USF ouvert ?
- veux-tu repartir sur la bonne ligne plus tard ?
Dans ce dernier cas tu poses le problème de la sauvegarde de la valeur d'une variable.
Il n'y a pas de problème tant que tu ne fermes pas l'USF voire le classeur.
Dans le cas contraire, je préfère passer par le stockage dans une cellule libre masquée de la feuille.
Si j'ai mal cerné le problème, il est inutile d'ouvrir le fichier joint.
 

Pièces jointes

  • SauvegardeVariable.zip
    13.4 KB · Affichages: 28

Laurent313131

XLDnaute Occasionnel
Re : USF et incrémentation

Bonjour,

Désolé, absent hier, je n'ai pu poursuivre sur ce fil.

Dans ton tableau, tu souhaites inscrire la valeur de ta Textbox6 sur la première cellule vide de ta colonne J (attention dans ton fichier que j'ai modifié, ce n'est plus la colonne J mais la colonne I)

La valeur numérique en rouge correspond à la colonne (J=10)

Code:
Private Sub CommandButton1_Click()
Dim dl1 As Long ' dernière ligne
With Sheets("Feuil5")
    dl1 = .Cells(32, [b][color=red]10[/color][/b]).End(xlUp).Row + 1
        .Cells(dl1, [b][color=red]10[/color][/b]) = TextBox6.Value
End With
End Sub

A+
Kotov

Bonsoir,

En fait je ne veux pas inscrire la valeur de la Textbox 6 sur la première cellule vide de ma colonne J mais sur la cellule J17. Mais je veux que l'incrémentation se fasse quand même : si je re rentre des valeurs dans mes textbox, la valeur de la textbox6 s'affichera une cellule en dessous de la précédente, soit en J18, puis en J19 si je re rentre des valeurs une 3ème fois.

Je pense qu'il faut modifier là où j'ai surligné en rouge mais je vois pas comment faire !

dl1 = .Cells(32, 10).End(xlUp).Row + 1
.Cells(dl1, 10) = TextBox6.Value
 

Laurent313131

XLDnaute Occasionnel
Re : USF et incrémentation

Bonjour Tous,

Je ne comprends pas bien ce que tu fais :
- à quoi servent les saisies 2, 3 et 4 ?
- veux-tu garder-tu l'USF ouvert ?
- veux-tu repartir sur la bonne ligne plus tard ?
Dans ce dernier cas tu poses le problème de la sauvegarde de la valeur d'une variable.
Il n'y a pas de problème tant que tu ne fermes pas l'USF voire le classeur.
Dans le cas contraire, je préfère passer par le stockage dans une cellule libre masquée de la feuille.
Si j'ai mal cerné le problème, il est inutile d'ouvrir le fichier joint.

Bonsoir Lii,

La saisie des valeurs 2, 3 et 4 ne servent à rien dans le calcul. Elles me servent juste d'indice dans l'analyse de la performance ...

Je ne veux pas garder l'USF ouvert.

Je comprend pas la 3ème question :(. Je veux juste que la prochaine fois, la valeur de la textbox6 s inscrive en J18 (et que celle de J17 soit conservée) puis en J19 si j'ouvre mon USf une 3ème fois ....

Si je ferme mon USF et mon classeur, mes valeurs dans mes cellules sont bien conservées donc c'est bon. Je veux juste qu'elles s'affichent dans les bonnes cellules ...
 

Discussions similaires

Réponses
26
Affichages
964

Statistiques des forums

Discussions
312 555
Messages
2 089 546
Membres
104 208
dernier inscrit
laura29180