Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1794 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Création macro pour un fichier Excel de 600p et 13000 lignes

n°1868654
Ptit loup
Quand c'est flou, y'a un loup
Posté le 02-04-2009 à 11:50:54  profilanswer
 

Reprise du message précédent :
Ce qui peut me faire croire l'inverse... eh bien c'est que j'ai déjà eu a travailler sur des bilans comptables (d'un point de vue informatique / base de données)... et tout doit être tracé... même les erreurs, et même les lignes à 0... donc voilou.
 
OK, globalement, tu as la solution à ton pb en tout cas.

mood
Publicité
Posté le 02-04-2009 à 11:50:54  profilanswer
 

n°1868661
SuppotDeSa​Tante
Aka dje69r
Posté le 02-04-2009 à 12:07:51  profilanswer
 

Non mais si tu as un tableau a presenter genre a ton boss, extrait de la compta, tu en fais bien ce que tu veux. Du moment que ce n'est pas une pièce comptable au sens legal du terme.
 
Si tu exportes tes données sous Excel pour faire par ex des stats sur tes clients, et que tu veux virer tous les comptes 411 sauf ceux commencant par "toto" tu fais bien ce que tu veux.


Message édité par SuppotDeSaTante le 02-04-2009 à 12:08:23

---------------
Soyez malin, louez entre voisins !
n°1868961
yannjoss
Posté le 02-04-2009 à 18:30:07  profilanswer
 

Decidemment !  
Cela me tue que tu me pourrisses ce post par tes soupçons !
 
Comme quoi à chacun sa matière ! A toi l'informatique, à moi la compta.

Encore une fois rien n'est effacé !!
Relis mon post au dessus !  
 
Ou celui de dje69r qui te convaincra peut être plus que moi !

Message cité 1 fois
Message édité par yannjoss le 02-04-2009 à 18:54:55

---------------
yann
n°1869859
yannjoss
Posté le 06-04-2009 à 02:11:09  profilanswer
 

Ptit loup a écrit :

Ce qui peut me faire croire l'inverse... eh bien c'est que j'ai déjà eu a travailler sur des bilans comptables (d'un point de vue informatique / base de données)... et tout doit être tracé... même les erreurs, et même les lignes à 0... donc voilou.
 
OK, globalement, tu as la solution à ton pb en tout cas.


 
Mais lis mon post au dessus du tien bon sang ! Rien n'est effacé !
 
A y est ? C'est bon ?
 
Merci !
 


---------------
yann
n°1870140
Ptit loup
Quand c'est flou, y'a un loup
Posté le 06-04-2009 à 15:16:03  profilanswer
 

yannjoss a écrit :

Decidemment !  
Cela me tue que tu me pourrisses ce post par tes soupçons !
 
Comme quoi à chacun sa matière ! A toi l'informatique, à moi la compta.

Encore une fois rien n'est effacé !!
Relis mon post au dessus !  
 
Ou celui de dje69r qui te convaincra peut être plus que moi !


Sauf que je n'ai jamais émis de "soupçons"... il ne faut pas t'énerver hein,... je te fais juste part de mon avis, rien de plus.

n°1871331
yannjoss
Posté le 08-04-2009 à 23:29:22  profilanswer
 

Bonjour à tous,
 
Je reviens vers vous...
 
Donc pour ceux qui ont suivi la macro donné par Ctplm avait bien fonctionnée :( Je vous la copie colle )
Le document était passé de 13255 à 1198 lignes.
Puis on a voulu supprimer également les lignes comportant -0.01 et -0.02 !
J'ai donc moi même avec l'aide de Rondoudoudou re ecris la condition ! Mais évidemment je me suis trompé quelque part car cela ne fonctionne pas !
 
La Macro qui fonctionne :
===================================================
Code :
 
   1. Dim NbLignes, Ligne As Integer
   2.
   3. Sub SuppressionLignes()Ctplm
   4.
   5.
   6. 'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
   7. NbLignes = Range("A65536" ).End(xlUp).Row
   8.
   9. 'On parcourt toutes les lignes du tableau
  10. For Ligne = 1 To NbLignes
  11.
  12. 'On sélectionne la dernière colonne remplie de la ligne
  13. 'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
  14. Feuil1.Range("AA" & Ligne).End(xlToLeft).Columns.Select
  15.
  16. 'On trie
  17. If Selection.Value = "0" Then
  18.
  19.       Feuil1.Range("A" & Ligne).EntireRow.Delete
  20.       Ligne = Ligne - 1
  21.      
  22. End If
  23.
  24. Next Ligne
  25. End Sub
===================================================
     
    Code :
Dim NbLignes, Ligne As Integer
Sub SuppressionLignes()
'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
NbLignes = Range("A65536" ).End(xlUp).Row
'On parcourt toutes les lignes du tableau
For Ligne = 1 To NbLignes
'On sélectionne la dernière colonne remplie de la ligne
'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
Feuil1.Range("AA" & Ligne).End(xlToLeft).Columns.Select
'On trie
If Selection.Value = "0" Then
      Feuil1.Range("A" & Ligne).EntireRow.Delete
      Ligne = Ligne - 1
     
End If
Next Ligne
End Sub  
===========================================================================
 
La Macro avec le souhait d'enlever -0.01 et -0.02
 
Code :
 
   1. Dim NbLignes, Ligne As Integer
   2.
   3. Sub SuppressionLignes()
   4.
   5.
   6. 'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
   7. NbLignes = Range("A65536" ).End(xlUp).Row
   8.
   9. 'On parcourt toutes les lignes du tableau
  10. For Ligne = 1 To NbLignes
  11.
  12. 'On sélectionne la dernière colonne remplie de la ligne
  13. 'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
  14. Feuil1.Range("AA" & Ligne).End(xlToLeft).Columns.Select
  15.
  16. 'On trie
  17. If Selection.Value = "0" Or Selection.Value = "-0.01" Or Selection.Value = "-0.02" Then
  18.
  19.       Feuil1.Range("A" & Ligne).EntireRow.Delete
  20.       Ligne = Ligne - 1
  21.      
  22. End If
  23.
  24. Next Ligne
  25. End Sub
===================================================
     
    Code :
Dim NbLignes, Ligne As Integer
Sub SuppressionLignes()
'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
NbLignes = Range("A65536" ).End(xlUp).Row
'On parcourt toutes les lignes du tableau
For Ligne = 1 To NbLignes
'On sélectionne la dernière colonne remplie de la ligne
'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
Feuil1.Range("AA" & Ligne).End(xlToLeft).Columns.Select
'On trie
 If Selection.Value = "0" Or Selection.Value = "-0.01" Or Selection.Value = "-0.02" Then
      Feuil1.Range("A" & Ligne).EntireRow.Delete
      Ligne = Ligne - 1
     
End If
Next Ligne
End Sub
 
===========================================================================
 
@Ptit loup : Est ce que j'ai été clair en expliquant que rien n'est effacé ?  
Que logiciel de comptabilité  édite un fichier Excel à un moment "t" Et c'est sur ce fichier donc que la macro est appliquée.  
Le document comptable lui "continue d'exister" avec les lignes à zéro et -0.01 et -0.02


---------------
yann
n°1871332
yannjoss
Posté le 08-04-2009 à 23:35:56  profilanswer
 

Ptit loup a écrit :


Sauf que je n'ai jamais émis de "soupçons"... il ne faut pas t'énerver hein,... je te fais juste part de mon avis, rien de plus.


 
Ooooh ! Navré ! Je croyais que tu mettais ma parole en doute !
En plus j'ai posté ce soir sans avoir lu ta réponse avant ! Seulement une fois mon message posté !
 
(Je stress trop d'après les collègues  :fou: )
 


---------------
yann
n°1871345
seniorpapo​u
Posté le 09-04-2009 à 07:16:36  profilanswer
 

Bonjour,
est-ce que ta cellule est numérique ou alphabétique?
si elle est numérique alors -0.01 n'est pas exactement égal à -0.01 mais peut être égal à -0.00999999999 et dans ce cas ta comparaison ne fonctionnera pas.
Il faut probablement transformer la valeur de la cellule en alpha à l'aide de "format": Format(Range(......).Value, "#0.00" )
cordialement
 
 
Edit: attention format retourne la valeur avec une virgule ou un point (à vérifier).


Message édité par seniorpapou le 09-04-2009 à 07:19:00
n°1871392
Ptit loup
Quand c'est flou, y'a un loup
Posté le 09-04-2009 à 09:57:38  profilanswer
 

pas de souci... ;)
 
pour le -0,01; je dirais pareil... à mon avis, il faut voir ça comme un nombre et pas comme du texte... d'ailleurs tu indiques bien un ".value".
Essaie donc sans les ""
A+

n°1871505
yannjoss
Posté le 09-04-2009 à 13:45:50  profilanswer
 

Bonjour Messieurs,
 
Entendu je comprends bien le problème de format que vous soulignez !
 
Par contre le reste du code est correctement modifié ?
Je peux m'appuyer dessus pour tenter vos propositions ?
Je parle de "La Macro avec le souhait d'enlever -0.01 et -0.02"  
 
Essayer la condition avec ou sans les "" de Ptit loup  
ou
Essayer la condition la proposition de seniorpapou ?
 
@seniorpapou
>est-ce que ta cellule est numérique ou alphabétique?
 
Dans excel par clic de droit dans la cellule la cellule a le format standard !
Je réponds correctement à ta question ?
 
 
A ce soir !  
Au fait, à titre d'info, le soft de compta dont le fichier excel est extrait se nomme user open
 
Bien à vous,


---------------
yann
mood
Publicité
Posté le 09-04-2009 à 13:45:50  profilanswer
 

n°1872099
yannjoss
Posté le 10-04-2009 à 16:59:08  profilanswer
 

Bonjour,
Je n'y arrive pas ! La macro avec condition zéro fonctionne mais avec les deux conditions -0.01 et -0.02 non !
J'ai essayé avec ou sans les guillemets.
 
Si jamais vous avez une autre idée ?
Bien à vous,


---------------
yann
n°1872122
seniorpapo​u
Posté le 10-04-2009 à 17:17:23  profilanswer
 

Bonsoir,
peux-tu  mettre sur cjoint un petit extrait , non confidentiel, (tu retires le contenu de cellules si nécessaire). On va regarder pourquoi cela ne fonctionne pas.  
Cordialement

n°1872139
yannjoss
Posté le 10-04-2009 à 18:53:16  profilanswer
 

seniorpapou a écrit :

Bonsoir,
peux-tu  mettre sur cjoint un petit extrait , non confidentiel, (tu retires le contenu de cellules si nécessaire). On va regarder pourquoi cela ne fonctionne pas.  
Cordialement


 
Bonjour,
 
En premier, merci pour la proposition,  :jap:  :jap:  
En deux oui je peux le faire ! Je vous mets le fichier en téléchargement à cette adresse : Macro trouvée et réalisée par Monsieur seniorpapou, une deuxième personne m'a envoyé un mail avec un code de macro "boléen" mais je ne sais pas si elle veut apparaître sur le forum
 
C'est donc le document extrait de user open (soft de compta) sans aucune macro appliquée.
Donc un onglet et 13248 lignes en trois colonnes sous Excel 2003.  
 
Le but est de supprimée les lignes contenant zéro et -0.01 et -0.02 dans la colonne 'Solde étude' Par la création d'une macro !  
 
Je remercie par avance toutes les personnes acceptant de se pencher sur ce problème en me fournissant le code de la macro !


Message édité par yannjoss le 11-04-2009 à 09:31:56

---------------
yann
n°1872153
seniorpapo​u
Posté le 10-04-2009 à 20:50:31  profilanswer
 

Bonsoir,
si la structure de ton fichier est strictement la même, tu peux essayer ceci:
 
Sub SuppressionLignes()
Application.ScreenUpdating = False
'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
NbLignes = Range("A65536" ).End(xlUp).Row
'On parcourt toutes les lignes du tableau
For Ligne = NbLignes To 1 Step -1
'On sélectionne la dernière colonne remplie de la ligne
'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
Feuil1.Range("AA" & Ligne).End(xlToLeft).Columns.Select
'On trie
 If Selection.Value = 0 Or Selection.Value = -0.01 Or Selection.Value = -0.02 Then
      Feuil1.Range("A" & Ligne).EntireRow.Delete
     
       
End If
Next Ligne
Application.ScreenUpdating = True
End Sub
 
 
lancer et attendre un peu sans s'inquièter
Bonne nuit


Message édité par seniorpapou le 10-04-2009 à 20:55:59
n°1872205
seniorpapo​u
Posté le 11-04-2009 à 07:18:05  profilanswer
 

Bonjour,
ta valeur est-elle toujours dans ta colonne   "solde étude" ?
si OUI alors on gagne un peu de temps en déterminant le numéro de cette colonne avant la boucle. Même si cette colonne n'est pas toujours la 3.
Ce qui donnerait en gros:
 
Sub SuppressionLignes()
Application.ScreenUpdating = False
Range("a2" ).EntireRow.Select
 
macol = Selection.SpecialCells(xlCellTypeLastCell).Column
'Définit le nombre de lignes contenues dans la feuille (la colonne mise en argument doit faire partie du tableau)
NbLignes = Range("A65536" ).End(xlUp).Row
'On parcourt toutes les lignes du tableau
For ligne = NbLignes To 1 Step -1
'On sélectionne la dernière colonne remplie de la ligne
'Adapter la colonne argument ("AA" ) en fonction de la taille du tableau
Cells(ligne, macol).Select
'On trie
 If Selection.Value = 0 Or Selection.Value = -0.01 Or Selection.Value = -0.02 Then
       
 Selection.EntireRow.Delete
       
End If
Next ligne
Application.ScreenUpdating = True
End Sub


Message édité par seniorpapou le 11-04-2009 à 07:33:15
n°1872208
yannjoss
Posté le 11-04-2009 à 09:38:42  profilanswer
 

Monsieur seniorpapou, je tiens à te remercier chaleureusement pour le code de cette macro qui fonctionne très bien et très rapidement.
Mon WK va être ensoleillé et je vais pouvoir me détendre un peu grâce à vous et à vous tous !
 
Encore navré de m'être pris la tête avec toi Monsieur Ptit loup  :whistle:  :whistle:  
 
Je suis très impressionné de votre gentillesse (je sais ça fait un peu con mais c'est sincère)
et par le professionnalisme de certains d'entre vous.
 
A toutes et tous, je vous souhaite un tres bon WK.
 
Y.


---------------
yann
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
fonction en PHP4 vèrifiant la validitè d'un fichier XML selon DTD[BATCH] automatiser changement de nom de fichier
API en PHP4 qui crée un fichier XML respectant un DTD donnéeVB Sauvegarder fichier avec droits admin
[Excel & Access] Optimiser la communication entre les deuxPiloter port parallèle avec Excel VBA
Lire et convertir un fichier .luwpb lors creation d'une classe generic en java pour type primitif
[résolu] Création de dossier 
Plus de sujets relatifs à : Création macro pour un fichier Excel de 600p et 13000 lignes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR