XL 2019 VBA chercher début colonne vide si la date est présente, sinon l'ajouter

donpopo

XLDnaute Occasionnel
Bonjour le forum,
Je me casse la tête à démêler mon problème.

Dans un userform, lorsque je clique un bouton, avant d'encoder quoi que ce soit dans la dernière colonne, je désire que cette colonne en question ait en ligne 1 la date de l'année en cours au format AAAA (année seule).
Si l'année est déjà présente, ne rien faire.

A chaque année suivante, même procédure: voir si année déjà présente, sinon l'ajouter dans dernière colonne vide

Je suis arrivé à une procédure qui ne fonctionne pas vraiment: La cellule en question ne reçoit pas la date comme prévu mais bien les caractères "AAAA". De plus, je ne suis pas certain que, libellé, comme je l'ai fait, cela fonctionne l'année suivante.


VB:
'-----------------------------------------------------------------
'encoder charges mens dans feuille indexation du locataire,
'nommer la dernière colonne avec l'année en cours si pas déja fait
'-----------------------------------------------------------------
Private Sub Bout_Encodage_Charges_Click()
    Dim Nr_Lign_Bail As Integer, Lign_Bail As Range, Ref_Cherchee As String, lig As Integer, Dern_Col_Vide As Integer, Annee_encours As Date
   
    Dern_Col_Vide = (Sheets("Indexations").Cells(1, Cells.Columns.Count).End(xlToLeft).Column) + 1
    MsgBox Dern_Col_Vide
    Annee_encours = Date
    If Sheets("Indexations").Cells(1, Dern_Col_Vide - 1) <> Format(Annee_encours, "AAAA") Then
        Sheets("Indexations").Cells(1, Dern_Col_Vide) = Format(Annee_encours, "AAAA")
    End If
End Sub

Si une bonne âme pouvait m'aider?

Merci d'avance,
donpopo
 

Jacky67

XLDnaute Barbatruc
Bonjour le forum,
Je me casse la tête à démêler mon problème.

Dans un userform, lorsque je clique un bouton, avant d'encoder quoi que ce soit dans la dernière colonne, je désire que cette colonne en question ait en ligne 1 la date de l'année en cours au format AAAA (année seule).
Si l'année est déjà présente, ne rien faire.

A chaque année suivante, même procédure: voir si année déjà présente, sinon l'ajouter dans dernière colonne vide

Je suis arrivé à une procédure qui ne fonctionne pas vraiment: La cellule en question ne reçoit pas la date comme prévu mais bien les caractères "AAAA". De plus, je ne suis pas certain que, libellé, comme je l'ai fait, cela fonctionne l'année suivante.


VB:
'-----------------------------------------------------------------
'encoder charges mens dans feuille indexation du locataire,
'nommer la dernière colonne avec l'année en cours si pas déja fait
'-----------------------------------------------------------------
Private Sub Bout_Encodage_Charges_Click()
    Dim Nr_Lign_Bail As Integer, Lign_Bail As Range, Ref_Cherchee As String, lig As Integer, Dern_Col_Vide As Integer, Annee_encours As Date
  
    Dern_Col_Vide = (Sheets("Indexations").Cells(1, Cells.Columns.Count).End(xlToLeft).Column) + 1
    MsgBox Dern_Col_Vide
    Annee_encours = Date
    If Sheets("Indexations").Cells(1, Dern_Col_Vide - 1) <> Format(Annee_encours, "AAAA") Then
        Sheets("Indexations").Cells(1, Dern_Col_Vide) = Format(Annee_encours, "AAAA")
    End If
End Sub

Si une bonne âme pouvait m'aider?

Merci d'avance,
donpopo
Bonsoir,
Sans classeur, je dirais....
Plutôt que de travailler avec un format ==> Format(Annee_encours, "AAAA")
Qui serait d'ailleurs en vba ==> Format(Annee_encours, "yyyy")
Travailler avec==> Year(Date)
 

youky(BJ)

XLDnaute Barbatruc
Bonsoir donpopo,
Un petit fichier exemple, j'ai pas tenu compte de la sheets(...
Utiliser plutôt le codename c'est plus cour, si on renomme ca ne bug pas
Feuil1 ou Feuil2.[A1] voir en fenêtre des projets
Bruno
 

Pièces jointes

  • Donpopo.xlsm
    14.6 KB · Affichages: 17

donpopo

XLDnaute Occasionnel
Bonsoir Bruno,

Je te joins le fichier; il est assez important.
Mais, c'est dans le userform "Répartition charges" lorsque je clique sur le bouton 'Encoder charges' que je voudrais comparer si la date existe ou non et l'ajouter au cas où.
De même, si je clique sur le bouton 'indexation loyer', la même chose doit se produire; en effet, je peux encoder des charges pour une année et pas d'indexation et vice-versa.
Le userform "Indexation" n'est pas encore créé; mais si j'ai la solution pour l'userform "Répartition charges", je pourrai copier cette programmation dans mon futur userform.

Merci encore,
 

Pièces jointes

  • ESSAI.xlsm
    390.1 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 188
Messages
2 086 026
Membres
103 099
dernier inscrit
myseb