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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 mai 2008 à 17:19
lermite222 Messages postés 8702 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 ...
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Macro Recorder - Télécharger - Divers Utilitaires
- Macro word - Guide
- Macro souris ✓ - Forum Windows
11 réponses
zavenger
Messages postés
809
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
159
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
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
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
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
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
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
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
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
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