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
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
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)
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
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.