Probléme macro ...
Résolu
Napalawow
Messages postés
38
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Voila la macro qui pose probléme :
j'ai donc essayé ce code pour vérifier si se n'était pas un probléme de date :
Ce code fonctionne donc le probléme ne vient pas d'un probléme de format date ...
Merci beaucoup !!! pour votre aide
Voila la macro qui pose probléme :
Sub essaiee()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim aa As Double
contenu = "14/05/2008 6:50"
For lig = 7 To 6 Step -1
If Cells(aa, 12) And DateDiff("n", contenu, MaDate) <> 0 Then 'CETTE LIGNE POSE UN PROBLEME POUR EXCEL !!
Rows(aa).Delete
End If
Next aa
End Sub
j'ai donc essayé ce code pour vérifier si se n'était pas un probléme de date :
Sub essaiee_marche()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
contenu = "14/05/2008 6:50"
MaDate = CDate(Cells(6, 12).Value)
If DateDiff("n", contenu, MaDate) <> 0 Then
Rows(6).Delete
Cells(1, 14).Value = "caaa marche !"
End If
End Sub
Ce code fonctionne donc le probléme ne vient pas d'un probléme de format date ...
Merci beaucoup !!! pour votre aide
A voir également:
- Probléme macro ...
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
11 réponses
cela ne viendrait-il pas du fait que tu utilises lig comme variable de boucle et que tu utilises aa dans cette boucle ??
Bonjour,
ca provient de ta boucle et de la variable aa
J'ai déjà adapté ta boucle mais la variable MaDate n'est pas initialisée et je sais pas où tu va la chercher
A+
ca provient de ta boucle et de la variable aa
Sub essaiee()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim aa As Double
contenu = "14/05/2008 6:50"
For lig = 7 To 6 Step -1
If Cells(lig, 12) And DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 Then
Rows(lig).Delete
End If
Next lig
End Sub
J'ai déjà adapté ta boucle mais la variable MaDate n'est pas initialisée et je sais pas où tu va la chercher
A+
oups excusez moi en faite lig=aa et il manque une ligne en plus ......
Jvais vous donnez le code texto !!! ca sera + simple !
Jvais vous donnez le code texto !!! ca sera + simple !
Sub essaiee()
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
contenu = "14/05/2008 6:50"
For lig = 7 To 6 Step -1
MaDate = CDate(Cells(lig, 12).Value)
If Cells(lig, 12) And DateDiff("n", contenu, MaDate) <> 0 Then
Rows(lig).Delete
End If
Next lig
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oué en faite t'as raison Lermite la variable MaDate correspond au contenue de la cellule active!
J'ai essayé ton code :
Mais EXcel me dit tjrs qu'il y a un probléme sur la ligne
If Cells(lig, 12) And DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 en me disant "erreur 13 incompatibilté de type"
Ce probléme réside t-il du contenue de la cellule ? (bien qu'on est forcée en + la cellule en Date)..
+
J'ai essayé ton code :
Sub essaiee2()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
contenu = "14/05/2008 6:50:41"
For lig = 8 To 7 Step -1
If Cells(lig, 12) And DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 Then
Rows(lig).Delete
End If
Next lig
End Sub
Mais EXcel me dit tjrs qu'il y a un probléme sur la ligne
If Cells(lig, 12) And DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 en me disant "erreur 13 incompatibilté de type"
Ce probléme réside t-il du contenue de la cellule ? (bien qu'on est forcée en + la cellule en Date)..
+
OK, remet ta variable...puisque tu dit que ta 2èm solution fonctionne
For lig = 8 To 7 Step -1
MaDate = CDate(Cells(lig, 12).Value)
If Cells(lig, 12) And DateDiff("n", contenu,MaDate) <> 0 Then
Rows(lig).Delete
End If
Next lig
C'est bon j'ai essayé un mélange de code qui me paraissai correct et sa m'A L'AIR de FONCTIONNER correctement !!!
Voici le bout de code :
Reste plus qu'à faire les tests !!
Merci FoRuM !
+
Voici le bout de code :
Sub essaiee2()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
contenu = "14/05/2008 6:50:41"
For lig = 8 To 7 Step -1
If DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) > 0 Then
Rows(lig).Delete
End If
Next lig
End Sub
Reste plus qu'à faire les tests !!
Merci FoRuM !
+
Yep C encore moi ( Youhouuu ^^)
Donc en faite la macro ci dessus que j ai donné en 7, fonctionne correctement lorsque la cellule contient une date ( Normale ..)
quelques précisions: En faite ma colone L donc > Cells(...,12) < est en format date c.a.d. que TOUTES les cellules sont en format Date.
Le probléme est qu'en faite certaine cellules (rappel: qui sont en format Date!) sont vide donc =>"" ou contiennent des lettres
Donc voici le code qui aurait du survolé ce probléme :
Ce code fonctionne bien sur les cellules avec les Date Mais losqu'il s'agit de cellule vide ou centenant des lettres la macro ne se compile pas.
Si quelqu'un aurai la solution tant mieux et merci !
Sinon j'utiliserai plusieurs boucles FOR qui surchargeraient mon prog. :(
++ les gars !
Donc en faite la macro ci dessus que j ai donné en 7, fonctionne correctement lorsque la cellule contient une date ( Normale ..)
quelques précisions: En faite ma colone L donc > Cells(...,12) < est en format date c.a.d. que TOUTES les cellules sont en format Date.
Le probléme est qu'en faite certaine cellules (rappel: qui sont en format Date!) sont vide donc =>"" ou contiennent des lettres
Donc voici le code qui aurait du survolé ce probléme :
Sub essaiee2()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
contenu = "11/05/2008 6:50:41"
For lig = 76 To 75 Step -1
If DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 And Cells(lig, 12).Value <> vbNullString Then
Rows(lig).Delete
End If
Next lig
End Sub
Ce code fonctionne bien sur les cellules avec les Date Mais losqu'il s'agit de cellule vide ou centenant des lettres la macro ne se compile pas.
Si quelqu'un aurai la solution tant mieux et merci !
Sinon j'utiliserai plusieurs boucles FOR qui surchargeraient mon prog. :(
++ les gars !
Sub essaiee2()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
contenu = "11/05/2008 6:50:41"
For lig = 76 To 75 Step -1
if Cells(lig, 12) <>"" then
f DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 Then
Rows(lig).Delete
End If
end if
Next lig
End Sub
obligé de tester AVANT sinon plantage
A+
OK merci de ta correction lermite22
Voici la macro finale .. :
Comme il y avait une chaine de caractére et que je ne trouvé pas d'expression en VB pour désigner une chaine de caractére j'ai alourdi le prog. en ajoutant 2 variable de plus. ^^
Merci
Amicalement
a +
Voici la macro finale .. :
Sub essaiee2_essai()
Dim date_actuelle As Date
Dim contenu As Date
Dim MaDate As Date
Dim lig As Double
Dim n_turbine As Integer
Dim cas As String
n_turbine = 1
cas = " Te: Te" & n_turbine & " ("
contenu = "11/05/2008 6:50:41"
For lig = 59 To 54 Step -1
If Cells(lig, 12) <> "" Then
If Cells(lig, 12) <> cas Then
If DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 Then
Rows(lig).Delete
End If
End If
End If
Next lig
End Sub
Comme il y avait une chaine de caractére et que je ne trouvé pas d'expression en VB pour désigner une chaine de caractére j'ai alourdi le prog. en ajoutant 2 variable de plus. ^^
Merci
Amicalement
a +
Mais avec la ligne que tu ajoute tu peu supprimé un If
Et encore..
Si ta colonne 12 est configurée en date CDate n'est pas nécessaire
For lig = 59 To 54 Step -1
If Cells(lig, 12) <> "" And Cells(lig, 12) <> cas Then
If DateDiff("n", contenu, CDate(Cells(lig, 12).Value)) <> 0 Then
Rows(lig).Delete
End If
End If
Next lig
Et encore..
Si ta colonne 12 est configurée en date CDate n'est pas nécessaire