FORUM Tom's Hardware » Programmation » Autre » Excel 2003 : traitement des données
 

Excel 2003 : traitement des données

Il y a 46 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Excel 2003 : traitement des données
 
Plus d'informations

Coucou,

J'ai besoin d'automatiser le traitement des données sur un fichier au format toujours identique.
J'ai besoin de réaliser les opérations suivantes :

  • si pour la colonne 'numéro de contrat' la valeur est comprise entre A et C, alors effacer la ligne
  • si pour la colonne 'num contrat' la valeur est de FR et que pour la colone 'colonne 2' la valeur est 'IA' alors effacer la ligne.

Quelqu'un saurait-il me sauver de ces traitements que je dois effectuer tous les jours à la main ?

Merci !!!!!

zeb
Profil : Modérateur libre

Et bien si tu as un traitement à faire à la main, enregistre-le dans une macro, et rappelle cette macro à chaque fois que tu en as besoin.

Plus d'informations

Salut,
Merci pour l'aide. Le problème c'est que le nombre de lignes concernées pour chaque critère est variable. Or dans ma macro, j'élimine un nombre fixé et invariable de lignes. Genre : supprimer les lignes 120 à 135. Mais si demain, le nb est plus grand, seules celles de 120 à 135 seront éliminées.
Que ferais-tu ?

zeb
Profil : Modérateur libre

Ta macro est enregistrée. C'est bien.

Maintenant il faut l'adapter :
- Virer les Activate, Select et autre Selection, à bon escient.
- Utiliser des If pour vérifier si les conditions sont respectées.

Plus d'informations

Merci pour tes encouragements.
si je souhaite faire un test sur le premier caractère du contenu d'un cellule, comment je dois procéder ?
Exemple de ce que je souhaite implémenter :
If left(Cells(i, 4);1) < "3" Then Rows(i).Delete
Mais la fonction left n'existe pas apparemment.
Merci pour tes lumières !

Plus d'informations

Pour plus de clarté voici mon code

Code :
  1. Sub Mise_en_FormeGL()
  2. '
  3. ' TESTESTTEST Macro
  4. ' Macro recorded 10/07/2006 by MILLIPORE
  5. '
  6.    
  7. For i = 16000 To 2 Step -1
  8. If Cells(i, 3) = "465" And Cells(i, 1) = "EI" Then Rows(i).Delete
  9. If (Cells(i, 2) = "9413" Or Cells(i, 2) = "9430" ) And (Cells(i, 1) = "US" Or Cells(i, 1) = "CL" ) Then Rows(i).Delete
  10. If Cells(i, 4) = "16A100" Then Rows(i).Delete
  11. If Cells(i, 4) <= "300000" Then Rows(i).Delete  'et c est ici que ça bogue
  12. Next i
  13. End Sub

Plus d'informations

Au temps pour moi Zeb, je viens de trouver mon erreur. Elle provient du fait, que cela fonctionne parfaitement, seulement, cela prend bcp de temps.
Je pense que la longueur du traitement m'a fait pensé que cela boguait.
Problème résolu.

zeb
Profil : Modérateur libre

Citation :

Mais la fonction left n'existe pas apparemment.

Rhoo... Problème de référence. --> Outils/Références/[x] VisualBasic Pour Application

Quelque chose ne va pas dans ton code :

Code :
  1. If Truc1 Then Rows(i).Delete
  2. If Truc2 Then Rows(i).Delete


Et si Truc1 est vrai et que Truc2 l'est aussi ?
Et bien tu supprimes légitimement la ligne i puis illégitimement la ligne i+1 qui entre temps et devenue la ligne i.

Que faire ? Une variable Boolean ou une belle et grosse condition, pleine de parenthèses et de Or. Au choix :

Code :
  1. Dim a_supprimer As Boolean
  2. For i = ....
  3.     a_supprimer = Cells(i, 3).Value = "465" And Cells(i, 1).Value = "EI"
  4.     a_supprimer = a_supprimer Or ((Cells(i, 2).Value = "9413" Or Cells(i, 2).Value = "9430" ) And (Cells(i, 1).Value = "US" Or Cells(i, 1).Value = "CL" ))
  5.     a_supprimer = a_supprimer Or Cells(i, 4).Value = "16A100"
  6.     a_supprimer = a_supprimer Or Left(Cells(i, 4).Value ,1) <= "3"
  7.     If a_supprimer Then Rows(i).Delete
  8. Next i
Code :
  1. For i = ....
  2.     If (Cells(i, 3).Value = "465" And Cells(i, 1).Value = "EI" ) Or _
  3.       ((Cells(i, 2).Value = "9413" Or Cells(i, 2).Value = "9430" ) And (Cells(i, 1).Value = "US" Or Cells(i, 1).Value = "CL" )) Or _
  4.       (Cells(i, 4).Value = "16A100" ) Or _
  5.       (Left(Cells(i, 4).Value ,1) <= "3" ) Then
  6.         Rows(i).Delete
  7.     End If
  8. Next i

zeb
Profil : Modérateur libre

Eh, eh, le temps que j'écrive une réponse et M. Stephanosse a trouvé la solution. Les remarques restent pertinentes.

Enjoy!

Plus d'informations

Et il te remercie pour la vigileance dont tu as fais preuve car effectivement, je me serais fait avoir. Merci beaucoup Zeb.


  FORUM Tom's Hardware » Programmation » Autre » Excel 2003 : traitement des données

Aller à :
 

Annonces Google
Publicité
Offres partenaires
Actualités relatives

Microsoft Office 2003 : le test en français

Publié le 19 October 2003

Voilà qui manquait jusque là : un article en français pour nous présenter Office 2003, ses nouveautés et ses limites. C'est désormais un manque comblé par notre confrère PCAstuces dans cet article. Au menu, les nouveautés générales de la suite, puis Lire la suite

<b>[Mise à jour]</b> Service Pack 1 pour Office 2003

Publié le 27 July 2004

Microsoft vient de publier sur le site Office Update le premier service pack pour Office 2003, mais non encore en package indépendant. Vous devrez donc passer par OfficeUpdate pour mettre à jour. La firme de Redmond a également mis en ligne le service pac Lire la suite

Centres de données et pollution

Publié le 02 May 2008

Une étude de McKinsey & Co affirme que d’ici 2020 les centres de traitement de données produiront plus de gaz à effet de serre qu’un avion de ligne. Lire la suite

Un tableur du niveau d&#039;Excel sous Linux, Windows et PDA

Publié le 08 May 2004

Excel est incontestablement le tableur le plus utilisé et le plus réputé au monde. Cela tient sans doute au fait qu'il fait partie d'une suite bureautique complète, parfaitement intégrée au système d'exploitation, ce qu'aucun éditeur n Lire la suite

Les derniers tests

Que choisir ? Home Cinema 5.1 ou projecteur de son ?

Publié le 25 September 2008

Faut-il craquer pour un ensemble 5.1 ou pour une barre de son ? Découvrez les forces et faiblesses comparées de chaque système. Lire la suite

Intel Core i7 (Nehalem) : une architecture signée AMD ?

Publié le 25 September 2008

Avec ses nouveaux processeurs Core i7, Intel fait évoluer les Core 2 en reprenant leur architecture, mais en lui rajoutant des technologies dont la plupart semblent avoir leur équivalent direct chez AMD. Impression ou réalité ? Lire la suite

Test du Nokia N96 : la vie sans écran tactile

Publié le 24 September 2008

Un téléphone haut de gamme peut il échapper à l'écran tactile ? Nokia a tenté le pari avec le N96. Lire la suite

Les nouveaux disques durs 1 To

Publié le 22 September 2008

Un an et demi après l'introduction du premier disque dur 1 To, les prix ont beaucoup diminué et de nouveaux modèles ont été lancés. Mais comment se comportent-ils entre eux et par rapport aux anciens ? Réponse dans ce comparatif. Lire la suite