Microsoft 365 Conversion feuille vide

  • Initiateur de la discussion Initiateur de la discussion gabo29
  • 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 !

G

gabo29

Guest
Bonjour,

J'ai une macro qui récupère des infos sur un onglet et dans lequel je dois convertir la date. Parfois, cet onglet est vide et la conversion fait planter la macro et l'empêche tourner. Je cherche à contourner ce problème, voici le code que j'utilise :

Sheets("feuil1").Select

For Each c In Range("L1:L" & Range("L" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("R1:R" & Range("R" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("P1😛" & Range("P" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("AG1:AG" & Range("AG" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("AH1:AH" & Range("AH" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("AB1:AB" & Range("AB" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("AC1:AC" & Range("AC" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("AD1:AD" & Range("AD" & Rows.Count).End(xlUp).Row)
If Not IsDate(c.Value) Then
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

Pouvez vous m'aider svp ?
Merci d'avance,
Gabo29
 
Bonsoir Gabo, bonsoir le forum,

Essaie comme ça (à continuer sur toutes les plages...) :

VB:
Sheets("feuil1").Select
For Each c In Range("L1:L" & Range("L" & Rows.Count).End(xlUp).Row)
If c.Value <> "" Then
    If Not IsDate(c.Value) Then c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c

For Each c In Range("R1:R" & Range("R" & Rows.Count).End(xlUp).Row)
If c.Value <> "" Then
    If Not IsDate(c.Value) Then c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
End If
Next c
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
568
Retour