Récupération d'une donné +1 dans une textbox

One Shot

XLDnaute Nouveau
Bonjour à tous,

Je suis en train de réaliser un fichier Excel de gestion de travaux, je suis en train de finir une user form le 2 et je bloque sur la récupération d'une donnée.

Pour faire simple, j'ai une userform avec des textbox et combobox avec lesquelles je remplis un tableau puis je récupère dans la userform3 les donnée du tableau en fonctionne du N° de devis. Tout cela fonctionne bien.

Mais dans la userform 2 Création d'un nouveau numéro de devis je souhaite que le texte soit automatique dans la textbox1 en allant chercher dans la table la dernière cellule de la colonne 1 soit Devis N° 11 et de coller ceci avec +1 soit devis N° 12 et ainsi de suite après chaque enregistrement.

Cette information devra s'écrire à l'ouverture de la userform.

Par avance merci de m’aider.

Pour ceux qui se poseraient la question j'ai regardé sur plusieurs forums et je ne trouve pas de réponse.
 

Pièces jointes

  • fichier de suivi de travaux.xlsm
    50.9 KB · Affichages: 38
  • fichier de suivi de travaux.xlsm
    50.9 KB · Affichages: 40
  • fichier de suivi de travaux.xlsm
    50.9 KB · Affichages: 42
Dernière édition:

VDAVID

XLDnaute Impliqué
Re : Récupération d'une donné +1 dans une textbox

Bonjour OneShot,

Si j'ai bien compris, il faut récupérer le dernier devis et lui rajouter +1.

Un test, remplace le code de ton userform_initialize par:

Code:
Private Sub UserForm_Initialize()

Dim Valo As Variant
Dim i, h, k As Integer
Dim Num As String
Dim Flag1 As Boolean

Num = "0123456789"

    'Liste A = client sur référence
    ComboBox1.RowSource = ("A")
    'Liste B = statut sur feuille référence
    ComboBox2.RowSource = ("B")
    
    With Sheets("Table")
    
    Valo = .Range("A" & Range("A65536").End(xlUp).Row).Value
    Valo2 = Valo
    
        For k = 1 To 10
        Valo2 = Replace(Valo2, Mid(Num, k, 1), "")
        Next k
    
        For i = 1 To Len(Range("A" & Range("A65536").End(xlUp).Row).Value)
            
            For h = 1 To 10
            
            If Mid(Valo, 1, 1) = Mid(Num, h, 1) Then
            Flag1 = True
            End If
            
            Next h
            
            If Flag1 = False Then
            Valo = Mid(Valo, 2, Len(Valo))
            End If
            
            
        Next i
        
        TextBox1.Value = Valo2 & Valo + 1
        
    End With
    
End Sub

Seule contrainte, il ne faut pas d'autres numéros que ceux situés à la fin

Bonne journée
 

VDAVID

XLDnaute Impliqué
Re : Récupération d'une donné +1 dans une textbox

Re,

Etrange, quand je l'ouvre je n'ai aucun message d'erreur.

Il se pourrait que ce soit la ligne de code, (tout en haut du code du Userform):

Code:
Dim i As Byte

Qui bloque, comme c'est une variable qui a le même nom que j'utilise pour une autre variable dans le code que je t'ai proposé.

Il faudrait la supprimer ou mettre un " ' " devant.
Sinon je ne vois vraiment pas :confused:
 

One Shot

XLDnaute Nouveau
Re : Récupération d'une donné +1 dans une textbox

Peut etre la version d'excel vous etes en 2003.

Si une autre pesonne a une autre solution.

Me.TextBox1.Value = Sheets("Table").Range("H65536").End(xlUp).Value

Semble etre solution mais je n'arrive pas à l'intégrer.
 

One Shot

XLDnaute Nouveau
Re : Récupération d'une donné +1 dans une textbox

Je ne pense pas etre tres loin du but mais cela ne fonctionne toujours pas si quelqu'un veux bien m'aider.

'selection du client
Private Sub UserForm_Initialize()

'Liste A = client sur référence
ComboBox1.RowSource = ("A")
'Liste B = statut sur feuille référence
ComboBox2.RowSource = ("B")
Dim DerLig As Long, T As Variant
With Worksheets("Table")
DerLig = .Range("E65536").End(xlUp).Row
T = Application.Substitute(Me.TextBox1, ".", ",")
If IsNumeric(T) Then
Me.TextBox1 = .Range("A" & DerLig) = CDbl(T) + 1
End If
End With

End Sub
 

VDAVID

XLDnaute Impliqué
Re : Récupération d'une donné +1 dans une textbox

Re OneShot,

Je te poste un fichier exemple avec mon code.
Tu pourras le tester et voir qu'il fonctionne.

Il semble que que tu ais eu une erreur lors de l'intégration à ton document à cause de "." que j'ai oublié.

Le code rectifié:

Code:
Private Sub UserForm_Initialize()

Dim Valo As Variant
Dim Nbcarac, h, k As Integer
Dim Num As String
Dim Flag1 As Boolean

Num = "0123456789"

    'Liste A = client sur référence
    'ComboBox1.RowSource = ("A")
    'Liste B = statut sur feuille référence
    'ComboBox2.RowSource = ("B")
    
    With Sheets("Table")
    
    Valo = .Range("A" & .Range("A65536").End(xlUp).Row).Value
    Valo2 = Valo
    
        For k = 1 To 10
        Valo2 = Replace(Valo2, Mid(Num, k, 1), "")
        Next k
    
        For Nbcarac = 1 To Len(.Range("A" & .Range("A65536").End(xlUp).Row).Value)
            
            For h = 1 To 10
            
            If Mid(Valo, 1, 1) = Mid(Num, h, 1) Then
            Flag1 = True
            End If
            
            Next h
            
            If Flag1 = False Then
            Valo = Mid(Valo, 2, Len(Valo))
            End If
            
            
        Next Nbcarac
        
        TextBox1.Value = Valo2 & Valo + 1
        
    End With
    
End Sub

Autant pour moi !

J'ai aussi modifié la variable "i" pour Nbcarac pour éviter tout conflit avec Dim i As Byte.
 

Pièces jointes

  • Devisbis.xls
    33 KB · Affichages: 49
  • Devisbis.xls
    33 KB · Affichages: 48
  • Devisbis.xls
    33 KB · Affichages: 50

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG