[VBA / Excel] Aide sur une macro a programmer

Aide sur une macro a programmer [VBA / Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 24-06-2008 à 13:33:23    

Bonjour, je suis en train de réaliser une macro pour le traitement de donnes contenues dans un fichier *.csv
 
Le but de la macro est a partir d'un fichier brut *.csv, trier et garder les donnes (les lignes en l'occurence) qui nous interessent et supprimer les autres.
 
Dans le paquet de lignes qui m'intéressent, certaines doivent être exportées dans un fichier excel et d'autres dans d'autres fichiers excel selon un critere bien défini.
 
j'ai déjà commence a travailler dessus et ça donne ça
 

Code :
  1. Sub Macro1()
  2. '
  3. ' Sorting macro for Bent Blade Detector
  4. '
  5. ' Created the 23/6/2008 - PA NICOLAS
  6. '
  7. 'Start text to Column script
  8.     Columns("A:A" ).Select
  9.     Selection.TextToColumns Destination:=Range("A1" ), DataType:=xlDelimited, _
  10.         TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
  11.         Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
  12.         :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
  13.         Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
  14.         ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
  15.         (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
  16.         Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
  17.         33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
  18.         Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
  19.         46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1)), TrailingMinusNumbers _
  20.         :=True
  21. 'Script done
  22.        
  23. 'Writing min, max and range in column after bent blades values column and writing formulas of min max and range in the first cells
  24.     Range("AY1" ).Select
  25.     ActiveCell.FormulaR1C1 = "min"
  26.     Range("AZ1" ).Select
  27.     ActiveCell.FormulaR1C1 = "max"
  28.     Range("BA1" ).Select
  29.     ActiveCell.FormulaR1C1 = "range"
  30.     Range("AY2" ).Select
  31.     ActiveCell.FormulaR1C1 = "=MIN(RC[-3]:RC[-1])"
  32.     Range("AZ2" ).Select
  33.     ActiveCell.FormulaR1C1 = "=MAX(RC[-4]:RC[-2])"
  34.     Range("BA2" ).Select
  35.     ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
  36.    
  37. 'Calculating the number of rows
  38.     Dim rows_number As Integer
  39.     rows_number = "=COUNT("AY:AY" )" + 1
  40.    
  41. 'integrating the number in the string
  42.     Dim rows_max As String
  43.     rows_max = BA2 & rows_number
  44.    
  45. 'copy operation
  46.     Range("AY2:BA2" ).Select
  47.     Selection.Copy
  48.    
  49. 'paste operation
  50.     Range("AY3:rows_max" ).Select
  51.     ActiveSheet.Paste
  52.    
  53. End Sub


 
 
Première chose dont j'ai besoin, c'est trouver le nombre de lignes présentes dans le fichier excel. pour cela je pensais faire un bête count d'une colonne en particulier. Je souhaite récupérer ce nombre pour ensuite réaliser un copy paste de trois cellules qui sont situes sur la première ligne jusqu'à la dernière ligne présente dans le fichier excel. Seulement ça a pas l'air de fonctionner aussi simplement que je le pensais...
 
Deuxième chose, j'ai besoin de réaliser un tri sur une colonne en particulier.Celle-ci contient des valeurs du genre "735475-2", ou bien "487596-6",...
je ne dois garder que les lignes possédant dans cette colonne une valeur qui m'intéresse (la liste de ces valeurs en question pourrait être un tableau en fait avec les valeurs indiquées dans le tableau) et "dropper" les autres lignes qui ne m'intéressent pas.
 
3eme chose. On a donc un fichier excel avec un ensemble de lignes qui m'intéressent. Maintenant je dois grouper ces lignes selon un critère bien défini ( en l'occurrence toutes les lignes qui ont la même valeur dans une colonne donnée) et les sauver dans un fichier excel.  
 
Par exemple on a un groupe de lignes avec une valeur x dans la colonne A un autre groupe de lignes avec la valeur y dans la colonne A et ainsi de suite. Il faut exporter chaque différent groupe de ligne dans un fichier excel séparé. Un groupe = un fichier excel.
 
Ensuite je dois dans ces groupes de lignes et dans certaines colonnes, "dropper" certaines valeurs.
 
Le mieux serait en fait que je montre la manip de traitement des données en live mais c'est un peu dur a réaliser au boulot...
 
la macro est pas facile a réaliser, j'ai des bases en programmation, en C, mais queue dalle en visual basic pour excel et je suis pas un uber expert non plus...
Si vous avez des idees ou pouvez m'aider  :jap:  
 


---------------
"Fire, exclamation mark. Fire, exclamation mark. Help me, exclamation mark. Looking forward to hearing from you. All the best, Maurice Moss."
Reply

Marsh Posté le 24-06-2008 à 13:33:23   

Reply

Marsh Posté le 25-06-2008 à 12:29:51    

up


---------------
"Fire, exclamation mark. Fire, exclamation mark. Help me, exclamation mark. Looking forward to hearing from you. All the best, Maurice Moss."
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed