copier/coller des lignes sous excel avec condition

copier/coller des lignes sous excel avec condition - VB/VBA/VBS - Programmation

Marsh Posté le 05-09-2006 à 13:51:37    

Bonjour à tous,  
 
A partir d'excel, je dois réaliser une macro qui permet à partir d'une feuille excel, de copier les lignes
avec une condition et de les coller dans une autre feuille.
Exemple : je récupère à partir d'un logiciel le chiffre d'affaire réalisé par le personnel de l'entreprise sur chacun de leurs clients. Les données sont déjà triées et réogranisées par le nom de chaque personne de cette entreprise. On me demande de copier les lignes correspondant à chaque personne et de les coller dans des feuilles différentes. Il y a 16 personnes. je dois donc effectuer 16 conditions en prenant comme variable le nom de la personne.
J'ai crée une macro dont voici le code :  
 
Sub Macro1()
 
 
' Macro1 Macro
' Macro enregistrée le 05/09/2006 par
'
 
 
       
      Dim collaborateur As String
      collaborateur = BLANC
       
      For i = 2 To 40
          If Cells([i], [1]) = collaborateur Then
              Worksheets("Export CCMX" ).Range("B" & i & ":E" & i).Copy
              Worksheets("BLANC" ).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
         False, Transpose:=False
         Else
             Worksheets("Export CCMX" ).Range("B" & i & ":E" & i).Copy
             Worksheets("CARBONNEL" ).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
         False, Transpose:=False
         End If
     Next i
         End Sub
 
 
Cette macro me permet de copier et coller les lignes dans une feuille différente mais je rencontre trois problèmes :  
 
1) je n'arrive pas à utiliser correctement "collaborateur". En effet, il ne prend pas en compte ma condition BLANC et donc il me copie toujours mes données dans l'autre feuille.
2) y a t-il une possibilité de faire plus simple car je dois répéter cette opération 16 fois (pour les 16 collaborateurs)
3) comment faire quand le nombre de lignes diffèrent d'une extraction à une autre. Dans ma macro, c'est moi qui indique le nombre de ligne pour la boucle.
 
Merci à tous

Reply

Marsh Posté le 05-09-2006 à 13:51:37   

Reply

Marsh Posté le 05-09-2006 à 14:48:45    

Bonjour,
c'est une tâche à faire souvent?
par quelqu'un qui manipule bien Excel?
Un filtre automatique sur les éléments de la colonne 1 et un copier coller manuel ne suffiraient pas?
Cordialement

Reply

Marsh Posté le 05-09-2006 à 15:40:45    

je fais pas de VBA avec Excel mais ce "BLANC" me paraît bizarre
je suis habitué au Null d'Access
une solution de contournement consiste à travailler sur la longueur de la chaîne (longueur = 0 indique une chaine vide)
EDIT : lapsus


Message édité par 4get9 le 13-02-2007 à 10:09:51
Reply

Marsh Posté le 06-09-2006 à 09:46:25    

Bonjour,  
 
C'est une tâche à réaliser une fois par mois.
J'ai réussi à trouver mon pb de sélection par le nom du collaborateur (BLANC, CARBONNEL...)
En fait, la sélection ne se faisait pas car je partait de Cells(i,1) et no de Range (A, i).
Avec Range, je peux facilement copier les lignes qui ont comme conditions le nom du collaborateur afin de les
coller dans une feuille qui lui est destinée.
Un simple filtre automatique ne lui suffit pas. il veut cliquer sur un bouton et avoir le résultat san rien faire.
 
Merci

Reply

Marsh Posté le 06-09-2006 à 10:08:37    

Bonjour,
ah, ces utilisateurs!!!!  
Est-ce que l'on considère ton pb comme resolu?
Cordialement

Reply

Marsh Posté le 13-02-2007 à 10:11:11    

ah ok BLANC était le nom du type !!!
La prochaine fois utilise DUPONT plutôt

Reply

Sujets relatifs:

Leave a Replay

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