Bonjour,
Je cherche une formule ou une macro me permettant en cliquant sur un bouton d’atteindre la première ligne vierge d’un tableau de gestion de compte dont la colonne de gauche est la date d’une dépense.
Merci de votre aide
Voir le fichier joint. Les codes des deux boutons sont dans le module de la feuille Feuil1.
VB:
Sub Rectangleàcoinsarrondis1_Clic()
Cells(Application.Match(9 ^ 99, Columns("a:a")) + 1, "a").Select
End Sub
Sub Rectangleàcoinsarrondis2_Clic()
Range("e3:e" & Rows.Count).SpecialCells(xlCellTypeBlanks).Range("a1").Select
End Sub
edit :j'ai pris comme hypothèse que les colonnes ne contiennent que des nombres (une véritable date en Excel est un nombre).
Si ce n'est pas le cas, le bouton de la colonne A ne fonctionnera pas. Dans ce cas, remplacez le code du premier bouton par :
Code:
Sub Rectangleàcoinsarrondis1_Clic()
Dim n1&, n2&
On Error Resume Next
n1 = Application.Match(9 ^...
Bonsoir.
Le plus simple c'est de faire subir à votre plage une mise sous forme de tableau.
Vous n'avez alors plus besoin de connaître la cette ligne pour pouvoir en ajouter une par VBA.
Pour la colonne A, le lien se trouve dans la cellule A1 et la formule est: =LIEN_HYPERTEXTE( "#a" & EQUIV(9^99;A:A)+1;"Prem cellule après dernière cellule avec date")
On se branche après la dernière cellule remplie avec une date de la colonne A
Pour la colonne E, le lien se trouve dans la cellule E1 et la formule est: =LIEN_HYPERTEXTE( "#e" & MIN(SI(E3:E9999="";LIGNE(E3:E9999);""));"Prem cellule colonne E vide")
On se branche sur la première cellule vide de la colonne E.
Attention!La formule en E1 est une formule matricielle.
Formule Matricielle:
à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée
ne pas entourer la formule d'accolade au clavier. C'est la validation par Ctrl+Maj+Entrée qui ajoute les accolades
une fois saisie et validée, une formule matricielle peut être copiée et collée
à chaque édition/modification de la formule matricielle, penser à la valider par Ctrl+Maj+Entrée
Bonsoir mapomme et merci,
Je vois effectivement que cette technique de lien fonctionne dans l'exemple fourni. J’espérais faire fonctionner cela en cliquant sur un bouton nommé "entrer donnée" qui m'emmenerait à la première ligne vierge. Est ce possible?
Cordialement
Voir le fichier joint. Les codes des deux boutons sont dans le module de la feuille Feuil1.
VB:
Sub Rectangleàcoinsarrondis1_Clic()
Cells(Application.Match(9 ^ 99, Columns("a:a")) + 1, "a").Select
End Sub
Sub Rectangleàcoinsarrondis2_Clic()
Range("e3:e" & Rows.Count).SpecialCells(xlCellTypeBlanks).Range("a1").Select
End Sub
edit :j'ai pris comme hypothèse que les colonnes ne contiennent que des nombres (une véritable date en Excel est un nombre).
Si ce n'est pas le cas, le bouton de la colonne A ne fonctionnera pas. Dans ce cas, remplacez le code du premier bouton par :
Code:
Sub Rectangleàcoinsarrondis1_Clic()
Dim n1&, n2&
On Error Resume Next
n1 = Application.Match(9 ^ 99, Columns("a:a"))
n2 = Application.Match(String(255, "z"), Columns("a:a"))
If n2 > n1 Then n1 = n2
Cells(n1 + 1, "a").Select
End Sub
Merci mapomme, c'est vraiment sympa de répondre si vite! Je vais tester cela dès demain. Pouvez me dire pourquoi faut il que le bouton se trouve dans la colonne A? Ne peut on pas le mettre à n'importe quel endroit de la feuille de calcul?
Je n'ai jamais dit que les boutons avaient une place fixe!
Il doivent néanmoins se trouver sur la feuille où trouver la cellule vide.
Si ce n'est pas le cas, il faudra modifier un tout petit peu le code.
Me le demander le cas échéant.