Activer feuil sur fermerture userform

Bonjour,

Voila je me suis lancé dans l’apprentissage du code VBA depuis 1 semaine

j'ai réussi a faire se que je voulais pour le moment mais la je sais pas comment faire pour quand je ferme ma userfom je voudrais que la feuil ou mes données vont se rentrer s'ouvre et que sa sélectionne la ligne qui vient d’être rentré.

Et sinon j'ai crée une deuxième userform et j'aimerais que les données rentré s'incrémente sur la ligne 1 mais vers la droite j'ai essayé en mettant ce code la mais sa ne fonctionne pas

no_ligne = Sheets("Base de donnée").Range("A65536").End(xlToRight).Row + 1

voili voila j'espere que j'ai été clair sur ma demande pour mon premier post merci a tous votre aide

Bonjour,

Alors, petite précision sur les constantes qui précisent le sens. "xlToRight" et "xlToLeft" sont utilisées, dans le cas de la méthode End(), pour une recherche horizontale (vers la droite ou vers la gauche), la recherche est faite, dans ce cas, sur une ligne. Quand aux constantes "xlUp" et "xlDown" elles sont utilisées pour une recherche verticale (vers le bas ou vers le haut) donc, dans une colonne.

Pour définir une plage par exemple sur la colonne A à partir de A1 Cells(1, 1) à Ax. La recherche de la dernière cellule utilisée se fait du bas vers le haut de la colonne :

With ActiveSheet

    Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))

End With

Pour trouver la ligne de la dernière cellule non vide de la colonne A (toujours du bas vers le haut) :

With ActiveSheet

    Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row

End With

Pour trouver la colonne de la dernière cellule non vide de la ligne 1. Le sens est de la droite vers la gauche :

With ActiveSheet

    Colonne = .Cells(1, .Columns.Count).End(xlToLeft).Column

End With

Depuis Excel 2007 on utilise plus "Range("A65536").End(xlUp).Row + 1" mais plutôt "Rows.Count". Dans ton cas, ta ligne de code va être comme ça :

With Sheets("Base de donnée")

    no_ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

End With

Hervé.

salut Hérvé merci pour c'est renseignement j'ai mit en place le bout de code que tu m'as donnée mais quand je rentre une donnée elle se met bien dans la ligne mais va sur la cellule Q alors que la dernière cellules vide est G

voici mon code de mon userfom

Private Sub CommandButton_Ajout_Marque_Click()
    Dim no_ligne As Integer

    If MsgBox("Confimez-vous l'ajout de cette marque?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then

With Sheets("Base de donnée")

    no_ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

'Placer le nouvel ajout sur la première ligne vide

                            'Remplissage tableau liste véhicules
                Cells(1, no_ligne).Value = TextBox_Ajout_Marque
                'Sheets("Stationnement Génant").Range("B" & no_ligne).Value = TextBox_Heure
                'Sheets("Stationnement Génant").Range("C" & no_ligne).Value = ComboBox_Marques
                'Sheets("Stationnement Génant").Range("D" & no_ligne).Value = ListBox_Types
                'Sheets("Stationnement Génant").Range("E" & no_ligne).Value = TextBox_Immatriculation
                'Sheets("Stationnement Génant").Range("F" & no_ligne).Value = TextBox_Commentaires
    End With

    Unload Me 'fermeture userform

    End If
End Sub

Merci Hervé j'ai reussi mais plutot en utilisant ce code ci

With ActiveSheet

    Colonne = .Cells(1, .Columns.Count).End(xlToLeft).Column

End With

et sinon quelque code je peux utiliser pour que quand je ferme mon userform ouvre par exemple la feuil2 avec la ligne sélectionné sur la dernière donnée rentré ?

Bonjour,

Si tu veux sélectionner la cellule renseignée, utilise la commande "Select" de l'objet Range. J'ai un peu modifié ton code. La recherche de la cellule vide est faite sur la première ligne et la valeur y est entrée :

Private Sub CommandButton_Ajout_Marque_Click()

    Dim Cel As Range

    If MsgBox("Confimez-vous l'ajout de cette marque?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then

         With Sheets("Base de donnée")

             Set Cel = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1)
            'Placer le nouvel ajout sur la première ligne vide--> plutôt la première colonne vide non ?..

            'Remplissage tableau liste véhicules
            Cel.Value = TextBox_Ajout_Marque.Text

        End With

         Cel.Select

         Unload Me 'fermeture userform

    End If

End Sub

Hervé.

Merci Hervé pour ton aide qui ma été de grande aide et ma permis d'apprendre de nouvelle chose merci a toi

Rechercher des sujets similaires à "activer feuil fermerture userform"