Probleme is not date vba
Fermé
noobduvb
-
10 juil. 2008 à 10:31
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 - 11 juil. 2008 à 09:27
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 - 11 juil. 2008 à 09:27
8 réponses
CapitainCo
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
61
10 juil. 2008 à 10:51
10 juil. 2008 à 10:51
ce code va supprimé les lignes qui n'ont pas de date dans la colonne A
i = 1
For i = 1 To numligne
controle = Cells(i, 1).Value
If IsDate(controle) = False Then
Rows(i).Delete
Else
Cells(i, 3) = Cells(i, 3) & Cells(i + 1, 3)
End If
Next i
ce code va effacé ligne qui n'ont pas de date dans la colonne A
i = 1
For i = 1 To numligne
controle = Cells(i, 1).Value
If IsDate(controle) = False Then
Rows(i).Clear
Else
Cells(i, 3) = Cells(i, 3) & Cells(i + 1, 3)
End If
Next i
i = 1
For i = 1 To numligne
controle = Cells(i, 1).Value
If IsDate(controle) = False Then
Rows(i).Delete
Else
Cells(i, 3) = Cells(i, 3) & Cells(i + 1, 3)
End If
Next i
ce code va effacé ligne qui n'ont pas de date dans la colonne A
i = 1
For i = 1 To numligne
controle = Cells(i, 1).Value
If IsDate(controle) = False Then
Rows(i).Clear
Else
Cells(i, 3) = Cells(i, 3) & Cells(i + 1, 3)
End If
Next i
CapitainCo
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
61
10 juil. 2008 à 11:29
10 juil. 2008 à 11:29
Il faut juste mettre ce code avant ta verification de date ou pas date
Range("A1") = Replace(Range("A1"), " ", "")
Range("A1") = Replace(Range("A1"), " ", "")
daccord je vais essayer
j'ai remarquer qu'il manquer un I = I - 1 lorsque j'efface une ligne sinon je la "saute"
un autre petit probleme comme tu peus voir
ma ligne de fin de mon document excel et la ligne ou je trouve "fin d'édition"
mais comme dans mon traitement j'efface mes ligne et je fais un retours en arrierre lorsque je trouve
par exemple une cellulle vide
sa me fait donc une boucle infini xD !
peut etre que je dois faire un compteur lorsque je rencontre une date jusqua la ligne "Fin d'édition"
encore merci je donne de suite des nouvelles
j'ai remarquer qu'il manquer un I = I - 1 lorsque j'efface une ligne sinon je la "saute"
zr = "Fin de l'édition" Set fin = Cells.Find(zr, ActiveCell) numligne = fin.Row I = 1 For I = 1 To numligne controle = Cells(I, 1).Value Cells(I, 1).Select Range("A1") = Replace(Range("A1"), " ", "") If IsDate(controle) = False Then Rows(I).Delete I = I - 1 Else Cells(I, 3) = Cells(I, 3) & " " & Cells(I + 1, 3) End If Next I
un autre petit probleme comme tu peus voir
ma ligne de fin de mon document excel et la ligne ou je trouve "fin d'édition"
mais comme dans mon traitement j'efface mes ligne et je fais un retours en arrierre lorsque je trouve
par exemple une cellulle vide
sa me fait donc une boucle infini xD !
peut etre que je dois faire un compteur lorsque je rencontre une date jusqua la ligne "Fin d'édition"
encore merci je donne de suite des nouvelles
merci pour ta formule Range("A1") = Replace(Range("A1"), " ", "")
mais il me faudrais plutot un range de ma ligne actuelle merciii
mais il me faudrais plutot un range de ma ligne actuelle merciii
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
CapitainCo
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
61
10 juil. 2008 à 12:24
10 juil. 2008 à 12:24
c'étais juste un exemple
zr = "Fin de l'édition"
Set fin = Cells.Find(zr, ActiveCell)
numligne = fin.Row
I = 1
For I = 1 To numligne
Cells(I, 1). = Replace(Cells(I, 1), " ", "")
controle = Cells(I, 1).Value
If IsDate(controle) = False Then
Rows(I).Delete
I = I - 1
Else
Cells(I, 3) = Cells(I, 3) & " " & Cells(I + 1, 3)
End If
Next I
par contre je ne sais pas si tu veux garder tes espaces dans les cellules?
zr = "Fin de l'édition"
Set fin = Cells.Find(zr, ActiveCell)
numligne = fin.Row
I = 1
For I = 1 To numligne
Cells(I, 1). = Replace(Cells(I, 1), " ", "")
controle = Cells(I, 1).Value
If IsDate(controle) = False Then
Rows(I).Delete
I = I - 1
Else
Cells(I, 3) = Cells(I, 3) & " " & Cells(I + 1, 3)
End If
Next I
par contre je ne sais pas si tu veux garder tes espaces dans les cellules?
voilà mon code
ma premiere boucle me sert à ne pas avoir de boucle qui tourne dans l'infini vu que j'efface des lignes
parcontre je vois pas ce que tu veus dire quand à garder mes espaces
dans mon cas je voulais justes les supprimer pour que ma fonction If IsDate(controle) = False fonctionne correctement!
mais tu peus toujours me le dire ! ca peut toujours servir
en tout cas je te remercis ! je repasserais si j'ai un probleme
'nettoie zr = "Fin de l'édition" Set fin = Cells.Find(zr, ActiveCell) numligne = fin.Row nbdate = 0 For I = 1 To numligne Cells(I, 1) = Replace(Cells(I, 1), " ", "") controle = Cells(I, 1).Value Cells(I, 1).Select If IsDate(controle) = True Then nbdate = nbdate + 1 End If Next I For I = 1 To nbdate 'Cells(I, 1) = Replace(Cells(I, 1), " ", "") controle = Cells(I, 1).Value Cells(I, 1).Select If IsDate(controle) = False Then Rows(I).Delete I = I - 1 Else Cells(I, 3) = Cells(I, 3) & " " & Cells(I + 1, 3) End If Next I End Sub
ma premiere boucle me sert à ne pas avoir de boucle qui tourne dans l'infini vu que j'efface des lignes
parcontre je vois pas ce que tu veus dire quand à garder mes espaces
dans mon cas je voulais justes les supprimer pour que ma fonction If IsDate(controle) = False fonctionne correctement!
mais tu peus toujours me le dire ! ca peut toujours servir
en tout cas je te remercis ! je repasserais si j'ai un probleme
CapitainCo
Messages postés
126
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
5 novembre 2009
61
11 juil. 2008 à 09:14
11 juil. 2008 à 09:14
Enfaite je parlais des enlever les espace dans la feuille de calcule ou dans la variable.
Et si tu ne veux pas faire deux boucles il faut que tu commences ta boucle en bas de ta feuille
A ++
Et si tu ne veux pas faire deux boucles il faut que tu commences ta boucle en bas de ta feuille
A ++
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
11 juil. 2008 à 09:27
11 juil. 2008 à 09:27
Bonjour puis-je te proposer une solution peut etre un poil plus optimisée?
'nettoie
zr = "Fin de l'édition"
Set fin = Cells.Find(zr, ActiveCell)
numligne = fin.Row
ii = 1
Do
Cells(ii, 1) = Replace(Cells(ii, 1), " ", "")
controle = Cells(ii, 1).Value
If IsDate(controle) = False Then
Rows(ii).Delete
numligne = numligne - 1
Else
Cells(ii, 3) = Cells(ii, 3) & " " & Cells(ii + 1, 3)
ii = ii + 1
End If
Loop While ii < numligne
End Sub
'nettoie
zr = "Fin de l'édition"
Set fin = Cells.Find(zr, ActiveCell)
numligne = fin.Row
ii = 1
Do
Cells(ii, 1) = Replace(Cells(ii, 1), " ", "")
controle = Cells(ii, 1).Value
If IsDate(controle) = False Then
Rows(ii).Delete
numligne = numligne - 1
Else
Cells(ii, 3) = Cells(ii, 3) & " " & Cells(ii + 1, 3)
ii = ii + 1
End If
Loop While ii < numligne
End Sub
10 juil. 2008 à 11:21
j'ai trouver le probleme pourquoi il ne considére pas mes dates en tant que date
à cause d' un ESPACE !
je me retrouve avec " 09-JUL-08" et non "09-JUL-08"
faut que je trouve le moyen d'automatiser en vba pour m'enlever ce facheus espace
si vous avez une idée je suis prenneur :)
merci