Condition de cellule

Jul74ien74

XLDnaute Nouveau
Bonjour,

voici un petit bout de code qui ne marche pas mais je ne comprends pas pkoi.

Sub AfficherInfoFichier()
For Lig = 8 To 133
If Not IsEmpty(Cells(Lig, 5)) Then
Else


FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 9)

Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFile(FichierATester)


Cells(Lig, 11).Value = F.DateLastModified

End If
Next Lig

End Sub

En gros je veux dire si la cellule est vide passe a la suivante sinon tester la cible.
 

vgendron

XLDnaute Barbatruc
Re : Condition de cellule

Hello

en fait. tu fais le contraire de ce que tu souhaites

Code:
Sub AfficherInfoFichier()
'parcourt de 8 à 133
For Lig = 8 To 133
    'si la cellule lig, 5 N'EST PAS vide (donc. si il y a quelque chose)
    If Not IsEmpty(Cells(Lig, 5)) Then 
        'alors....rien....quelle utilité donc?
   Else
    'sinon: (la cellule est vide
    FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 9)

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set F = fs.GetFile(FichierATester)
   Cells(Lig, 11).Value = F.DateLastModified
  End If
Next Lig

End Sub


j'aurais plutot fait un truc du genre
Code:
Sub AfficherInfoFichier()
For Lig = 8 To 133
   If IsEmpty(Cells(Lig, 5)) Then
       FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 9)
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set F = fs.GetFile(FichierATester)

       Cells(Lig, 11).Value = F.DateLastModified
  End If
Next Lig

End Sub
 

vgendron

XLDnaute Barbatruc
Re : Condition de cellule

oui donc. je disais. oups. dans mon code. il manque le NOT
Code:
Sub AfficherInfoFichier()
For Lig = 8 To 133
   If Not IsEmpty(Cells(Lig, 5)) Then
       FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 9)
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set F = fs.GetFile(FichierATester)
       Cells(Lig, 11).Value = F.DateLastModified
  End If
Next Lig
End Sub
 

Jul74ien74

XLDnaute Nouveau
Re : Condition de cellule

alors la ca marche mais voici un autre pb

Dans le code qui suit je teste si le fichier pdf est fait, si oui je prends la date de dernière modif sinon je mets en rouge la ligne,
Mais cela bloque lorsque il ne voit pas le pdf


Sub Bouton43_Cliquer()
For Lig = 8 To 133
FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 13)
If Not IsEmpty(Cells(Lig, 5)) Then
Cells(Lig, 6).Font.ColorIndex = 0
Cells(Lig, 11).Interior.ColorIndex = 2

Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFile(FichierATester)
Cells(Lig, 12).Value = F.DateLastModified
Else

Cells(Lig, 6).Font.ColorIndex = 3
Cells(Lig, 12).Interior.ColorIndex = 3

End If
Next Lig
End Sub
 

vgendron

XLDnaute Barbatruc
Re : Condition de cellule

pour la manipulation de fichier. je ne suis pas le meilleur placé pour t'aider..
mais l'aide VBA indique que GetFile renvoit une erreur si le fichier n'existe pas..
il faut donc sans doute ajouter un test pour gerer les erreurs..

Code:
Sub Bouton43_Cliquer()
'parcourt des lignes 8 à 133
For Lig = 8 To 133

If Not IsEmpty(Cells(Lig, 5)) Then
    'création du nom du fichier avec path complet. je suppose
    FichierATester = [M2] + Cells(Lig, 5) + Cells(Lig, 13)

    'coloration des cellules
    Cells(Lig, 6).Font.ColorIndex = 0
    Cells(Lig, 11).Interior.ColorIndex = 2

    Set fs = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next 'si il y a une erreur, la macro va ignorer la commande et passer à la ligne suivante
    Set F = fs.GetFile(FichierATester)
    Cells(Lig, 12).Value = F.DateLastModified
Else
    'sinon la ligne est vide
    Cells(Lig, 6).Font.ColorIndex = 3
    Cells(Lig, 12).Interior.ColorIndex = 3
End If
Next Lig
End Sub

PS: j'ai déplacé la ligne ou tu crées le FichierATester dans le IF
 

Discussions similaires

Statistiques des forums

Discussions
312 452
Messages
2 088 541
Membres
103 879
dernier inscrit
JJB2