Récupérer une valeur et la renvoyer à la dernière cel. non vide d'1 colonne

Bonjour,

J'ai un USF qui me permet d'ajouter dans une feuille "BC" un nouveau numéro de commande en prenant en compte le dernier numéro figurant dans la colonne (en l’occurrence LM).

J'ai une autre feuille "OS" où le dernier numéro en cours n'est pas dans la colonne mais dans une cellule. (En G4)

Il faudrait donc adapter le code (ci-joint) (de Ergotamine) qui ira chercher, non pas la dernière valeur de la colonne "LM" pour y ajouter + 1 puis la placer dans la dernière cellule non vide de LM , mais à la cellule définie (G4) pour ensuite aller la placer à la dernière cellule non vide de LM.

Je vous remercie par avance pour votre aide !

'Ajouter un nouvel OS'

Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Dim L%
With Worksheets("OS")
    L = .Range("LM" & .Rows.Count).End(xlUp).Row + 1
    .Cells(L, 325) = CStr(Me.TextBox10)
    Me.ComboBox1.AddItem Me.TextBox10
    If InStr(1, .Cells(L, 325), " ") = 0 Then
        Me.TextBox10 = .Cells(L, 325) + 1
        Else
        Me.TextBox10 = Left(.Cells(L, 325), InStr(1, .Cells(L, 325), " ") - 1) + 1
    End If
End With
Call UserForm_Initialize
Application.ScreenUpdating = True
End Sub

Bonjour Monadesign_83,

J'ai des doutes que vous ayez une réponse sans fichier représentatif avec un exemple et le résultat attendu ... Cependant, si c'est juste "déplacer G4" alors à ce moment là :

Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Dim L%
With Worksheets("BC")
    L = .Range("LM" & .Rows.Count).End(xlUp).Row + 1
    .Cells(L, 325) = Worksheets("OS").Range("G4")
Call UserForm_Initialize
Application.ScreenUpdating = True
End Sub

Cdlt,

Bonjour Ergotamine,

Merci beaucoup pour le code, mais je pense que j'ai oublié d'insérer la partie "pour le formulaire" et "effacer le dernier OS" qui doivent également faire l'objet d'une adaptation car dans la textbox 10 doit apparaître à l'ouverture du USF non pas le dernier n°OS figurant dans la colonne, mais le numéro présent en G4

J'ai essayé de bricoler en me basant sur le code que vous avez envoyé mais ça ne fonctionne pas :(

'Pour le formulaire
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim J As Long, I%, L%
With Worksheets("Achat en masse")
    L = .Range("LM" & Rows.Count).End(xlUp).Row
    For J = 10 To L
        Me.ComboBox1.AddItem .Range("LM" & J)
    Next J
    If InStr(1, .Cells(L, 325), " ") = 0 Then
        Me.TextBox10 = .Cells(L, 325) + 1
        Else
        Me.TextBox10 = Left(.Cells(L, 325), InStr(1, .Cells(L, 325), " ") - 1) + 1
    End If
End With
Application.ScreenUpdating = True
End Sub

'effacer le dernier OS AM'
Private Sub CommandButton6_Click()
Dim Lig As Long
With Worksheets("Achat en masse")
    .Range("LM" & .Cells(Rows.Count, "LM").End(xlUp).Row).ClearContents
    Lig = .Range("LM" & Rows.Count).End(xlUp).Row + 1
    ComboBox1.Clear
    ComboBox1.List = .Range("LM10:LM" & .Range("LM" & Rows.Count).End(xlUp).Row).Value
    TextBox10.Value = ""

    Me.Label77 = .Range("LM65000").End(xlUp).Rows
End With

End Sub

Bonjour,

Deux façons :
- Vous déplacez votre cellule G4 avant de définir la variable L et faite référence à G1 dans votre textbox 10
- Vous faites référence à G4 dans votre textbox 10

Pour la secondes façon :

'Pour le formulaire
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim J As Long, I%, L%
With Worksheets("Achat en masse")
    L = .Range("LM" & Rows.Count).End(xlUp).Row
    For J = 10 To L
        Me.ComboBox1.AddItem .Range("LM" & J)
    Next J
    Me.TextBox10 = Worksheets("OS").Range("G4")
    End If
End With
Application.ScreenUpdating = True
End Sub

Pour les prochaines demandes merci de joindre un fichier.

Cdlt,

Merci, impeccable, cela fonctionne très bien. Bien pris pour le fichier la prochaine fois. Bonne journée Ergotamine !

Rechercher des sujets similaires à "recuperer valeur renvoyer derniere cel vide colonne"