XL 2013 concevoir un userform de données

ivgu19

XLDnaute Junior
Bonjour le forum,
faire des petits bouts de code mais les mouliner ensemble ce n'est pas facile pour réaliser un projet.
A partir d'un userform (voir fichier) je recherche de l'aide pour coder en VBA:
saisir le textbox1 "nouvel index" et vérifier l'entrée (réalisé )
afficher le textbox5 "ancien index" (réalisé pour 1)
afficher le textbox9 "conso"
afficher le textbox13 "remarque" (comparaison à voir plus tard)
positionner le focus sur le "nouvel index" suivant
recommencer (4 fois sur 50)
cmdValider remplit les colonnes I,H,G
enregistre le claseur
 

Pièces jointes

  • transfert données.xls
    56 KB · Affichages: 60
  • transfert données.xls
    56 KB · Affichages: 65

ivgu19

XLDnaute Junior
Re : concevoir un userform de données

Bonjour Bebere,
Je n'ai pas réussi à trouver le bug suite à mon adaptation du pg qui consistait à ajouter un compteur.
mes ennuis: à la 5iem ligne pour le compteur 90, la saisie d'un nombre plus grand provoque le message "trop petit" et bloque l’exécution du pg.
et pour l'ensemble si j'entre un nombre plus petit, j'obtiens un chiffre négatif mais pas ce message qui renvoie au textbox saisi.
si tu as le temps de m'apporter ton aide, il est le bienvenu
cordialement
 

Pièces jointes

  • consoV4adapté.xlsm
    85.8 KB · Affichages: 51

ivgu19

XLDnaute Junior
Re : concevoir un userform de données

bonjour bebere,
merci de m'avoir répondu, j'ai fait l'ajout pour déprotéger la feuille mais ça n'arrange pas mon bug.
Précédemment, j'ai parlé du compteur 90 qui causé pb sans faire de rapprochement sur le nb saisi (NI=4 chiffres et AI= 3 chiffres) ça ne passe pas mais 5 chiffres devant 4 ça passe
donc essaie de saisir sur le premier compteur (80) le nb 1000 ( txtbox1 ),tu verras que le pg trouve la valeur trop petite
devant 826 ( txtbox47)?
et pourtant le code du module1 "If Usf.Controls("TextBox" & i) < Usf.Controls("TextBox" & i + 46) Then 'changer 45 en 46

MsgBox "Valeur trop petite"
C'est ma déduction mais qu'en est-il ?
 

Bebere

XLDnaute Barbatruc
Re : concevoir un userform de données

bonjour Ivgu
ajout de cdbl dans la comparaison
Public Sub BeforeUpDateTbo(i As Byte, Usf As UserForm)

If CDbl(Usf.Controls("TextBox" & i)) < CDbl(Usf.Controls("TextBox" & i + 46)) Then 'changer 45 en 46
MsgBox "Valeur trop petite"
Usf.Controls("TextBox" & i) = ""
test = False
Else
test = True
End If

End Sub
 

ivgu19

XLDnaute Junior
Re : concevoir un userform de données

bonsoir bebere,
cette ligne de code satisfait la condition mais à la validation j'ai un message d'exécution 13 justement sur cette ligne (voir pj)
peut être à demain
ivgu
 

Pièces jointes

  • consoV4adapté.jpg
    consoV4adapté.jpg
    45.8 KB · Affichages: 27

Bebere

XLDnaute Barbatruc
Re : concevoir un userform de données

bonjour Ivgu,le forum
pas su reproduire l'erreur,essai ce code
je pense que tu peux supprimer la partie colorée

Public Sub BeforeUpDateTbo(i As Byte, Usf As UserForm)
If Usf.Controls("TextBox" & i) <> "" And Usf.Controls("TextBox" & i + 46) <> "" Then
If CDbl(Usf.Controls("TextBox" & i)) < CDbl(Usf.Controls("TextBox" & i + 46)) Then 'changer 45 en 46
MsgBox "Valeur trop petite"
Usf.Controls("TextBox" & i) = ""
test = False
Else
test = True
End If
End If

End Sub
dans usf3 tu peux faire comme suit si la colonne B ne change pas
Private Sub cmdRemplacement_Click()
Dim Observation As Variant
Dim DernierAcces As Date
Dim cellule
Dim flag
Sheets("bdd").Activate
Sheets("bdd").Visible = True 'affiche la feuil5
ligne = (txtN°lot.Value * 1) + 1 'en colonne B si tu as tjrs 1 à99
lblDate = Cells(ligne, 6)
txtNom = Cells(ligne, 6)
txtConso = Cells(ligne, 8)
txtNI = Cells(ligne, 9)
txtAI = Cells(ligne, 10)
DernierAcces = Cells(ligne, 7)
Observation = Cells(ligne, 6)

' For Each cellule In Range("b2:b" & Range("B65535").End(xlUp).Row)
' If cellule = txtN°lot.Value * 1 Then
' flag = 1
' Exit For
' End If
' Next cellule
' If flag = 1 Then
' 'MsgBox ("Résultat trouvé ! en cellule " & cellule.Address)
' lblDate = cellule.Offset(0, 5)
' txtNom = cellule.Offset(0, 3)
' txtConso = cellule.Offset(0, 6)
' txtNI = cellule.Offset(0, 7)
' txtAI = cellule.Offset(0, 8)
' DernierAcces = cellule.Offset(0, 5)
'
' Observation = cellule.Offset(0, 4)
' ligne = cellule.Row
cmdValidRemplacement.Enabled = True
MsgBox ("Consommation au " & DernierAcces & " " & Observation)
' Else
' MsgBox ("Aucun résultat trouvé !")
' End If
'Sheets("bdd").Visible = False 'masque la feuil5 (supprimer pendant test)
End Sub
 

Statistiques des forums

Discussions
312 333
Messages
2 087 375
Membres
103 529
dernier inscrit
gonzi