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 + 1voili 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 WithPour 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 WithPour 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 WithDepuis 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 WithHervé.
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 SubMerci Hervé j'ai reussi mais plutot en utilisant ce code ci
With ActiveSheet
Colonne = .Cells(1, .Columns.Count).End(xlToLeft).Column
End Withet 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 SubHervé.
Merci Hervé pour ton aide qui ma été de grande aide