Ouvrir fichier excel puis supprimer ligne
Fermé
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
-
11 avril 2011 à 10:35
Cindy - 20 avril 2012 à 12:07
Cindy - 20 avril 2012 à 12:07
A voir également:
- Ouvrir fichier excel puis supprimer ligne
- Supprimer compte instagram - Guide
- Ouvrir fichier rar - Guide
- Liste déroulante excel - Guide
- Supprimer une page word - Guide
- Formule excel - Guide
43 réponses
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
14 avril 2011 à 15:24
14 avril 2011 à 15:24
Oui oui c'est normal, avant de faire les 130 je là test sur un petit nombre.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
14 avril 2011 à 15:58
14 avril 2011 à 15:58
Reste un problème sur tes fichiers, il y a un point de millier, il faut probablement le supprimer AVANT.
Sinon ça efface tout
C'est ça le problème ?
Sinon ça efface tout
C'est ça le problème ?
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
14 avril 2011 à 16:07
14 avril 2011 à 16:07
Oui il faut le changer en virgule, si je le fais pas effectivement ça me supprime tout les fichiers (en lançant une macro individuel sans l'ouverture automatique)
J'ai la formule, elle fonctionne :
Cells.Replace What:=".", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Si on regarde elle remplace un point par un point mais j'ai chercher sur internet et pour que ça marche il fallait mettre comme séparateur décimal une virgule et remplacer un point par un point,
J'ai la formule, elle fonctionne :
Cells.Replace What:=".", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Si on regarde elle remplace un point par un point mais j'ai chercher sur internet et pour que ça marche il fallait mettre comme séparateur décimal une virgule et remplacer un point par un point,
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
14 avril 2011 à 16:37
14 avril 2011 à 16:37
autre constatation..
Tes fichiers ont le séparateur de décimale "." (point)
Si c'est le cas, si je prend ton modèle (le 5) il n'y na aucune donnée supérieure à 3300
Tu en dis...
Tes fichiers ont le séparateur de décimale "." (point)
Si c'est le cas, si je prend ton modèle (le 5) il n'y na aucune donnée supérieure à 3300
Tu en dis...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
14 avril 2011 à 16:48
14 avril 2011 à 16:48
Oui dans le 5 il y a aucune valeur supérieure à 3300, c'est vrai
Ici il y en a un avec, pour tester la macro c'est mieux :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijwLUi0Oa.xls
Ici il y en a un avec, pour tester la macro c'est mieux :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijwLUi0Oa.xls
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
14 avril 2011 à 23:20
14 avril 2011 à 23:20
je pense que ça y est...
Sub SuppLigne()
Dim i As Integer, Lig As Long
Dim Chemin As String
Chemin = "C:\Documents and Settings\mc225714\Bureau\Supp3300\"
For i = 1 To 2
Workbooks.Open Chemin & i & "DAP.tif.xls"
Columns("C:C").NumberFormat = "@"
For Lig = ActiveWorkbook.ActiveSheet.Range("C65536").End(xlUp).Row To 2 Step -1
Cells(Lig, "C") = Replace(Cells(Lig, "C"), ".", ",")
If Cells(Lig, "C").Value > 3300 Then
Rows(Lig).Delete
Lig = Lig + 1
End If
Next Lig
ActiveWorkbook.Save
ActiveWorkbook.Close
Next i
End Sub
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 09:08
15 avril 2011 à 09:08
Malheureusement non lol. Je pense que je dois avoir un problème avec mes fichiers c'est pas possible que rien ne marche.
Quand je la lance, elle fait tout buggé, je suis obligé de fermer via le gestionnaire de tache et si je là fait manuellement pas par pas, ça ne bug pas mais elle ne change rien.
Quand je la lance, elle fait tout buggé, je suis obligé de fermer via le gestionnaire de tache et si je là fait manuellement pas par pas, ça ne bug pas mais elle ne change rien.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
15 avril 2011 à 12:21
15 avril 2011 à 12:21
Tes fichiers ont des formats un peu... exotique, j'ai du recourir à quelques astuces.
J'ai testé sur tes deux classeurs et ça fonctionne parfaitement.
Fait un essais..
Lancer en pas à pas,
Tu met l'éditeur sur un côté de l'écran et Excel de l'autre de façon à voir les deux fenêtre simultanément.
Mettre le curseur DANS la macro et taper F8, ensuite chaque fois que tu tape F8 l'instruction suivante est exécutée.
contrôler le résultat sur Excel après chaque commande
MAIS JE PENSE A UNE CHOSE... OU TU MET LE CODE ???
Il DOIT être dans un module général par exemple Module1,
>> Insertion >> Module, c'est là que tu dois mettre le code.
J'ai testé sur tes deux classeurs et ça fonctionne parfaitement.
Fait un essais..
Lancer en pas à pas,
Tu met l'éditeur sur un côté de l'écran et Excel de l'autre de façon à voir les deux fenêtre simultanément.
Mettre le curseur DANS la macro et taper F8, ensuite chaque fois que tu tape F8 l'instruction suivante est exécutée.
contrôler le résultat sur Excel après chaque commande
MAIS JE PENSE A UNE CHOSE... OU TU MET LE CODE ???
Il DOIT être dans un module général par exemple Module1,
>> Insertion >> Module, c'est là que tu dois mettre le code.
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 13:03
15 avril 2011 à 13:03
Effectivement ça marche nickel :), merci beaucoup !!!
Mais je viens de m'apercevoir d'un autre petit truc, aprés avoir fait cela je fais un histogramme et il me dit "la plage d'entrée ne peut contenir des données non numériques".
J'ai regardé et effectivement les données de la colonne C sont au format texte. On peut les convertir en nombre manuellement. Mais peut-on le faire avec une macro ? Car aprés sur mes 130 fichiers je fais l"histogramme grâce à une macro que j'ai déjà et marche sans problème.
Mais je viens de m'apercevoir d'un autre petit truc, aprés avoir fait cela je fais un histogramme et il me dit "la plage d'entrée ne peut contenir des données non numériques".
J'ai regardé et effectivement les données de la colonne C sont au format texte. On peut les convertir en nombre manuellement. Mais peut-on le faire avec une macro ? Car aprés sur mes 130 fichiers je fais l"histogramme grâce à une macro que j'ai déjà et marche sans problème.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
15 avril 2011 à 15:06
15 avril 2011 à 15:06
Mais oui,
Ajoute après la ligne..
j'ai plus les fichiers préparés, essaye voir ?
si ça ne va pas tu dis je reprendrais
A+
Ajoute après la ligne..
Next Lig
Columns("C:C").NumberFormat = "0.000"
j'ai plus les fichiers préparés, essaye voir ?
si ça ne va pas tu dis je reprendrais
A+
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 15:12
15 avril 2011 à 15:12
Nan ça marche pas, mais il n'y a pas de message d'erreur (en automatique ou étape par étape)
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
15 avril 2011 à 15:32
15 avril 2011 à 15:32
Je crois comprendre ce que tu veux dire,
toutes tes données doivent être convertie ? y compris la colonne D avec décimale et A,B,E,F en entier ?
Si oui, ça n'a plus rien à voir avec ta demande première mais ça peu se résoudre assez facilement.
Tu dis.
toutes tes données doivent être convertie ? y compris la colonne D avec décimale et A,B,E,F en entier ?
Si oui, ça n'a plus rien à voir avec ta demande première mais ça peu se résoudre assez facilement.
Tu dis.
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 15:52
15 avril 2011 à 15:52
Non non les autres colonnes je m'en fou, ce qui m'intéresse c'est que la colonne C pour faire mon histogramme. Et pour faire l'histogramme il faut que les données soient sous forme de nombre et non de texte.
Et aprés la macro qui traite la colonne C, toutes les valeurs de celle-ci sont au format texte.
Donc on peut passer toutes les colonnes au format nombre si c'est plus facile.
Et aprés la macro qui traite la colonne C, toutes les valeurs de celle-ci sont au format texte.
Donc on peut passer toutes les colonnes au format nombre si c'est plus facile.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
Modifié par lermite222 le 15/04/2011 à 16:04
Modifié par lermite222 le 15/04/2011 à 16:04
tu n'a pas compris la question, ...
Ton histogramme, il se sert des 4 colonnes, si oui.. toutes les données de tes fichiers sont en texte faut donc les transformer.
Si non, la colonne C est transformée en nombre avec la ligne que je t'ai communiquer.
Bien entendu faut repasser le fichier par la macro, même s'il n'y a plus de données à supprimer.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ton histogramme, il se sert des 4 colonnes, si oui.. toutes les données de tes fichiers sont en texte faut donc les transformer.
Si non, la colonne C est transformée en nombre avec la ligne que je t'ai communiquer.
Bien entendu faut repasser le fichier par la macro, même s'il n'y a plus de données à supprimer.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 16:24
15 avril 2011 à 16:24
Non je me sers que de la colonne C. Avec la macro suivante je supprime les colonnes D,E,F et je rentre ma plage des classes en colonne F.
Je viens d'essayer de faire l'histogramme aprés être passé avec la macro pour supprimer les lignes et changer la colonne C en nombre mais ça ne marche pas. Il me dit que la plage d'entrée ne peut contenir des valeurs non numériques.
Je viens d'essayer de faire l'histogramme aprés être passé avec la macro pour supprimer les lignes et changer la colonne C en nombre mais ça ne marche pas. Il me dit que la plage d'entrée ne peut contenir des valeurs non numériques.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
Modifié par lermite222 le 15/04/2011 à 16:50
Modifié par lermite222 le 15/04/2011 à 16:50
Oui, là t'est un peu dur à la détente... :-)
Je viens de te dire que les colonnes A,B,E,F sont en texte.... F en TEXTE
Donc ça peu pas marcher, et ça marche pas non plus en manuel.
change la ligne..
par
Columns("C:F").NumberFormat = "0.000"
Et REFLECHIT UN PEU quand même... :-))))
C'est pas parce qu'ont t'aide que tu dois mettre des oeillères.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Je viens de te dire que les colonnes A,B,E,F sont en texte.... F en TEXTE
Donc ça peu pas marcher, et ça marche pas non plus en manuel.
change la ligne..
Columns("C:C").NumberFormat = "0.000"
par
Columns("C:F").NumberFormat = "0.000"
Et REFLECHIT UN PEU quand même... :-))))
C'est pas parce qu'ont t'aide que tu dois mettre des oeillères.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
15 avril 2011 à 16:57
15 avril 2011 à 16:57
Le fait est que le bug provient pas de la colonne F mais de la colonne C :).
Colonne C, plage d'entrée
Colonne F plage des classes
Et le bug c'est "la plage d'entrée ne peut contenir des données non numériques."
Je viens d'essayer juste en convertissant la colonne C en nombre et l'histogramme marche.
Je réfléchis je réfléchis ^^.
Colonne C, plage d'entrée
Colonne F plage des classes
Et le bug c'est "la plage d'entrée ne peut contenir des données non numériques."
Je viens d'essayer juste en convertissant la colonne C en nombre et l'histogramme marche.
Je réfléchis je réfléchis ^^.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
15 avril 2011 à 17:15
15 avril 2011 à 17:15
la colonne C... EST NUMÉRIQUE.
Montre ton code qui affiche l'histogramme
Montre ton code qui affiche l'histogramme
tius38
Messages postés
22
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
19 avril 2011
18 avril 2011 à 09:28
18 avril 2011 à 09:28
Bonjour bonjour,
Voila le code :
Application.Run "ATPVBAEN.XLA!Histogram", ActiveSheet.Range("$C2:$C100"), "", _
ActiveSheet.Range("$F$2:$F$19"), False, False, True, False
F2-F19 c'est ma plage des classes
C2-C100 c'est ma plage d'entrée. J'ai mis jusqu'à 100 parce que je ne sais pas comment lui dire de sélectionner que les cases remplis en colonne C mais bon comme ça ça marche.
Voila le code :
Application.Run "ATPVBAEN.XLA!Histogram", ActiveSheet.Range("$C2:$C100"), "", _
ActiveSheet.Range("$F$2:$F$19"), False, False, True, False
F2-F19 c'est ma plage des classes
C2-C100 c'est ma plage d'entrée. J'ai mis jusqu'à 100 parce que je ne sais pas comment lui dire de sélectionner que les cases remplis en colonne C mais bon comme ça ça marche.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
19 avril 2011 à 11:06
19 avril 2011 à 11:06
Probable que la macro supporte pas les cellules vides, essaye avec...
Dim DerLig As Long
DerLig = [C65536].End(xlUp).Row
Application.Run "ATPVBAEN.XLA!Histogram", ActiveSheet.Range("$C2:$C" & DerLig), "", _
ActiveSheet.Range("$F$2:$F$19"), False, False, True, FalseA+