XL 2013 Sub commentaire

  • Initiateur de la discussion Initiateur de la discussion lestoiles1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lestoiles1

XLDnaute Occasionnel
Bonjour,

J'ai cette vba qui ne fonctionne plus avec mon formule actuel:

Sub commentaire(cellule As Range)
Dim nom As String, madate As Date, commentaireTexte As String

' Effacer tous les commentaires de la feuille
cellule.Parent.UsedRange.ClearComments

' Récupérer le nom (colonne 2 de la ligne de la cellule)
nom = cellule.Parent.Cells(cellule.Row, 2).Value

' Récupérer la date (ligne 3 de la colonne de la cellule)
madate = cellule.Parent.Cells(3, cellule.Column).Value

' Chercher le commentaire correspondant
commentaireTexte = cherchecomment(nom, madate)

' Ajouter un commentaire si trouvé
If Len(Trim(commentaireTexte)) > 0 Then
cellule.AddComment commentaireTexte
End If
End Sub

Function cherchecomment(nom As String, madate As Date) As String
Dim feuilleDetails As Worksheet
Dim dateCell As Range, nomCell As Range
Dim rechercheStart As Range

' Initialiser la feuille "Details"
Set feuilleDetails = Sheets("Details")

' Rechercher la date dans la colonne 8
Set dateCell = feuilleDetails.Columns(8).Find(What:=madate, LookAt:=xlWhole)

' Vérifier si la date existe
If dateCell Is Nothing Then
MsgBox "Aucune activité trouvée pour " & nom & " le " & _
Day(madate) & "-" & StrConv(Format(madate, "mmmm"), vbProperCase) & "-" & Year(madate), _
vbExclamation
Exit Function
End If

' Définir le point de départ pour la recherche du nom
Set rechercheStart = feuilleDetails.Cells(dateCell.Row, 1)

' Rechercher le nom dans la colonne 1 après la date trouvée
Set nomCell = feuilleDetails.Columns(1).Find(What:=nom, After:=rechercheStart, LookAt:=xlWhole)

' Vérifier si le nom existe
If nomCell Is Nothing Then
MsgBox "Aucune activité trouvée pour " & nom & " le " & _
Day(madate) & "-" & StrConv(Format(madate, "mmmm"), vbProperCase) & "-" & Year(madate), _
vbExclamation
Exit Function
End If

' Vérifier la correspondance entre la date et le nom
If Not verif(dateCell, nomCell) Then
MsgBox "Aucune activité trouvée pour " & nom & " le " & _
Day(madate) & "-" & StrConv(Format(madate, "mmmm"), vbProperCase) & "-" & Year(madate), _
vbExclamation
Exit Function
End If

' Retourner le commentaire (colonne 7 de la ligne trouvée)
cherchecomment = feuilleDetails.Cells(nomCell.Row, 7).Value
End Function

Function verif(dateCell As Range, nomCell As Range) As Boolean
' Vérifie si la date trouvée correspond à la date de la ligne du nom
If nomCell.Parent.Cells(nomCell.Row, 8).Value = dateCell.Value Then
verif = True
Else
verif = False
End If
End Function

Avant le 24 Mars j'ai une formule disant : IF(SUMIFS(DETAILS!$F:$F;DETAILS!$H:$H;J$3;DETAILS!$A:$A;$B4)=0;"";SUMIFS(DETAILS!$F:$F;DETAILS!$H:$H;J$3;DETAILS!$A:$A;$B4
Mais a partir du 24 Mars je l'ai changé en : IF(SUMIFS(DETAILS!$F:$F;DETAILS!$H:$H;J$3;DETAILS!$A:$A;$B4)=0;0;SUMIFS(DETAILS!$F:$F;DETAILS!$H:$H;J$3;DETAILS!$A:$A;$B4
Et le code vba ne marche plus lorsque le resultat est 0.
Pouvez vous me donner la solution
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
530
Réponses
4
Affichages
397
Réponses
28
Affichages
2 K
Retour