Erreur 1004 avec ActiveCell

Winniechips

XLDnaute Nouveau
Bonjour au Forum,

Ma feuille excel contient un tableau avec des dates. Je souhaite soustraire chaque date contenue dans mon tableau avec la date du jour B14. Si le résultat (nombre de jours) est compris entre certaines valeurs, la macro m'enverra un mail (c'est pour by-passer la mise en forme conditionnelle).


Dans le code VBA, J'ai un message d'erreur "1004 définie par l'application ou par l'objet" lorsque j'arrive sur la ligne resultat=... :

VB:
Dim resultat As Integer

For i = 3 To 12
        For j = 5 To 35
            
            If Not IsEmpty(ActiveCell) Then
                resultat = DateDiff("d", ActiveCell.Value, Range(B14).Value)
                Select Case resultat
                ...

Je me pose la question de savoir si l'erreur ne viendrait pas de ActiveCell.Value qui ne prendrait pas en compte que :

ActiveCell correspond à la cellule (i,j)
ActiveCell.Value est une date
resultat est un nombre de jours

Je vous remercie du temps que vous prendrez à m'aiguiller sur cette problématique.

Cordialement,
Winniechips
 

camarchepas

XLDnaute Barbatruc
Re : Erreur 1004 avec ActiveCell

re ,

Si 5 ,

tu passes par ici, et mon test est toujours ok :

Code:
Sub hh()
 Dim i As Integer, j As Integer, objOutlook As Outlook.Application
 Dim Resultat As String
 Dim oBjMail As Outlook.MailItem
 Dim oBjOl As Outlook.Application


Set oBjOl = CreateObject("Outlook.Application")

'.......
Resultat = "5"
 
 Select Case Resultat

                Case 1 To 90
                              Set oBjMail = oBjOl.CreateItem(0)
                          With oBjMail
                              .To = "monemail@blablabla.fr"
                              .Subject = "Echéance Habilitations du Personnel"
                              .Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est inférieure à 3 Mois."
                              .Send
                         
                         End With
  
                         Set oBjMail = Nothing
End Select

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Erreur 1004 avec ActiveCell

Re ,

tes boucles ne servent à rien,

aucun élément n'est variable dans ton équation générant resultat ???
et activecell est toujours la même .......

C'est plus un problème de syntaxe mais un problème de raisonnement .

For i = 3 To 12
For j = 5 To 35

If Not IsEmpty(ActiveCell) And IsDate(ActiveCell) Then
Resultat = DateDiff("d", ActiveCell.Value, Range("B14").Value)
End If


Je crois qu'il te faut redécrire ce que tu veux faire , et remettre un classeur exemple .

Car là nous somme tous en train de tourné en rond et de perdre notre temps
 

camarchepas

XLDnaute Barbatruc
Re : Erreur 1004 avec ActiveCell

La solution avait été donnée par Paf que je salue au passage , dans le post 3 ,

sheets("Feuille en question").cells(num_ligne,num_colonne) au lieu de activecell

voir en transitant par une variable

Cellule_Active = sheets("Feuille en question").cells(num_ligne,num_colonne)
If Not IsEmpty(Cellule_Active ) And IsDate(Cellule_Active ) Then
Resultat = DateDiff("d", Cellule_Active .Value, Range("B14").Value)
End If
 

Winniechips

XLDnaute Nouveau
Re : Erreur 1004 avec ActiveCell

Re-bonjour Camarchepas, ainsi que l'ensemble du forum,


La finalité de mon tableau est d'être prévenu avant la limite de validité les habilitations arrivant à échéance. La macro va permettre l'envoi d'un mail sur ma boîte mail pour me prévenir à chaque ouverture de ma session sur ma boite mail qu'il faut que je fasse le nécessaire pour les formations et habilitations.

Je vous mets en pièce jointe une copie de mon tableau (pour l'essai que j'ai démarré début décembre, les colonnes étaient peu nombreuses, aujourd'hui j'en ai beaucoup plus).

J'espère que vous pourrez m'aider et je m'excuse de vous avoir fait perdre du temps.
 

Pièces jointes

  • VBA Tableau de Suivi des Habilitations.xlsm
    28.5 KB · Affichages: 16

Discussions similaires

Statistiques des forums

Discussions
312 715
Messages
2 091 306
Membres
104 852
dernier inscrit
Max13008