MsgBox?

Bonjour,

Euh j'ai une question un peu simple à vous poser sans doute. Enfin je n'arrive pas à trouver de réponse sur le net. A chaque fois les exemples sont trop compliqués. J'ai un bouton Qui s'appelle " Nouvelle semaine ".

J'aimerai que quand je clic dessus, une fenêtre s'ouvre et me demande : Quel est le numéro de la semaine ". Quand l'utilisateur entre une valeur, alors la valeur s'inscris dans la feuil " test " en colonne A dans la ligne qui suit la dernière ligne. Par exemple, il y avait du texte jusque la ligne 24, que le numéro de la semaine soit inscris en A25. J'imagine que c'est faisable, mais je suis incapable de le faire.

Pour le moment j'ai juste

Private Sub TEST_Click()

End Sub

Merci d'avance pour votre aide.

Bonjour,

Voici une solution : Fichier

Sub Test()
    Dim strRep As String
    Dim boErreur As Boolean
    Dim lgLigFin As Long

    ' Message pour saisir le n° de semaine
    strRep = InputBox("Quel est le numéro de la semaine ?", "Numéro de semaine...")

    If strRep = "" Then Exit Sub

    ' Tester la validité de la saisie
    boErreur = False
    If Not IsNumeric(strRep) Then
        boErreur = True
    Else
        If CInt(strRep) < 1 Or CInt(strRep) > 52 Then boErreur = True
    End If

    ' La saisie est correcte
    If boErreur = False Then
        If CInt(strRep) >= 1 And CInt(strRep) <= 52 Then
            ' Dernière ligne vide en colonne A
            lgLigFin = Worksheets("Test").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1

            Worksheets("Test").Range("A" & lgLigFin).Value = CInt(strRep)
        End If
    Else
        MsgBox "La saisie n'est pas correcte", vbCritical + vbOKOnly, "Saisie erronée"
    End If
End Sub

Re bonjour,

Je viens d'écrire ceci, cela me permet de me postionner sur la dernière cellule de la colonne A contenant du texte.

    ligne = Sheets("Test").Range("a65536").End(xlUp).Row
    Range("A" & ligne).Select

Pour le reste je bloque.

Oula je viens de voir qu'entre temps vous m'avez posté une solution. Je vais la tester. Merci beaucoup. Je vous tiens au courant pour vous dire si ça marche.

Merci

Bonjour,

@ readi

Si je peux me permettre, dans ton code, le calcul de la dernière ligne ne me semble pas correct...

lgLigFin = Worksheets("Test").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1 

il calcule Cells.Rows.Count sur la feuille active

j'aurai opté pour :

With Worksheets("Test")
    lgLigFin = .Range("A" &.Cells.Rows.Count).End(xlUp).Row + 1
   .Range("A" & lgLigFin).Value = CInt(strRep)
End With

Amicalement

Bonjour,

Le nombre total de lignes dans une feuille est identique dans toutes les feuilles d'un classeur.

Par conséquent, il est inutile de définir la feuille.

Premièrement merci à readi et counsinhub de vous pencher sur mon problème.

Tout fonctionne parfaitement. Comme le dit cousinhub, il y avait peut-être une légère modif à faire. Excel bloquait au niveau de cette ligne car il n'était pas sur la bonne feuille. Avec ta solution cousinhub tout marche parfaitement.

... Merci à vous deux. Je suis bluffé

Re-,

effectivement, après essai (comme ce n'est pas la syntaxe que j'utilise habituellement), il s'avère que ton calcul est juste.

Annule ma précédente

Sorry

Rechercher des sujets similaires à "msgbox"