Probléme macro ...
Résolu
Napalawow
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- 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