Probléme macro ...
Résolu/Fermé
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
-
19 mai 2008 à 11:56
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 mai 2008 à 17:19
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 mai 2008 à 17:19
A voir également:
- Probléme macro ...
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
11 réponses
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
19 mai 2008 à 12:00
19 mai 2008 à 12:00
cela ne viendrait-il pas du fait que tu utilises lig comme variable de boucle et que tu utilises aa dans cette boucle ??
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 mai 2008 à 12:04
19 mai 2008 à 12:04
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+
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
1
19 mai 2008 à 13:23
19 mai 2008 à 13:23
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
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
1
19 mai 2008 à 13:29
19 mai 2008 à 13:29
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)..
+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 mai 2008 à 13:37
19 mai 2008 à 13:37
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
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
1
19 mai 2008 à 13:41
19 mai 2008 à 13:41
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 !
+
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
1
19 mai 2008 à 15:47
19 mai 2008 à 15:47
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 !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 mai 2008 à 16:11
19 mai 2008 à 16:11
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+
Napalawow
Messages postés
38
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
28 mai 2008
1
19 mai 2008 à 16:57
19 mai 2008 à 16:57
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 +
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
19 mai 2008 à 17:19
19 mai 2008 à 17:19
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