Votre question

Copier lignes sur feuilles différentes sous condition

Tags :
  • Visual basic
  • Programmation
  • VB
Dernière réponse : dans Programmation
1 Avril 2010 12:09:34

Bonjour,

j'ai lu 1000 articles sur Excel mais je ne trouve toujours pas de solution à mon problème... faut dire, j'suis pas très douée non plus...

j'ai un fichier de 255 lignes, en-tête compris. Deux des colonnes portent le nom de Division et de Magasin (un sous-groupe de Division) (le code de ces deux colonnes nous donnent une adresse de magasin client). J'ai donc trié le fichier par le code de la division, puis j'ai ajouté un sous-niveau de tri pour le code du Magasin.

Ce que je cherche à faire, c'est copier, pour chaque ensemble de codes différents (pour chaque ensemble différent de Division et de Magasin), les lignes correspondantes sur des feuilles différentes...

PLEASE HELP!

Merci d'avance à ceux qui se pencheront sur le problème

Autres pages sur : copier lignes feuilles differentes condition

1 Avril 2010 12:09:34

Bonjour,

j'ai lu 1000 articles sur Excel mais je ne trouve toujours pas de solution à mon problème... faut dire, j'suis pas très douée non plus...

j'ai un fichier de 255 lignes, en-tête compris. Deux des colonnes portent le nom de Division et de Magasin (un sous-groupe de Division) (le code de ces deux colonnes nous donnent une adresse de magasin client). J'ai donc trié le fichier par le code de la division, puis j'ai ajouté un sous-niveau de tri pour le code du Magasin.

Ce que je cherche à faire, c'est copier, pour chaque ensemble de codes différents (pour chaque ensemble différent de Division et de Magasin), les lignes correspondantes sur des feuilles différentes...

PLEASE HELP!

Merci d'avance à ceux qui se pencheront sur le problème
m
0
l
a b L Programmation
1 Avril 2010 14:27:00

Salut,

Et tu veux faire ça en VB (VBA/Excel) ?
m
0
l
Contenus similaires
8 Avril 2010 12:45:31

Salut!

je ne sais pas comment faire ça en fait, je n'ai jamais fait de VBA mais je devrais pouvoir me débrouiller si j'ai un code.

En fait, j'ai mal formulé mon problème parce que je ne l'ai pas présenté dans l'entièreté... désolée...

Ce que je dois faire en fait, c'est un fichier-type, je ne sais pas si ça doit se faire en Word obligatoirement ou si c'est possible en Excell.
Ce fichier-type aura donc le même message de base pour tous les ensembles Division-Magasin mais grâce à une correspondance avec le fichier Excell de base (celui avec les 255 lignes), chaque fichier-type reprendrait les lignes de ce fichier de base correspondant à son ensemble Division et Magasin.
En plus, le fichier-type devrait aussi être relié à l'adresse mail de cet ensemble Division-magasin.
Il y a quand même 50 ensembles différents "Division-Magasin", 50 adresses, donc est-ce possible que tous les fichiers-type s'envoient en même temps? (parce que envoyer un à un chaque fichier, 50 fois...)

Un tout grand merci aux personnes qui pourront m'aider
Merci Zeb de t'être déjà penché sur le problème.

m
0
l
13 Avril 2010 11:15:01

Bonjour!

Et encore merci!

J'ai enfin compris comment m'y prendre! Le problème c'est que le fichier reprenant les données sur les Div-Magasin (lesquelles je veux insérer dans fichier-type) ne reprend pas les adresses mails de chaque div-magasin... Il ne me reste "plus qu'à" mettre les adresses mails en correspondance avec les div-mag dans le fichier Excel...Sinon, je ne sais pas reprendre les données relatives à chaque div-mag que je dois leur envoyer... je vais essayer la recherche V et puis je retente le publipostage!
(j'espère ensuite pouvoir signaler que le problème est résolu!)

Bonne journée
m
0
l
15 Avril 2010 14:15:03

Bonjour!!

voilà, j'ai d'abord fait un test pour être sûr de ne pas gaffer en envoyer ces mails!

mais problème... j'ai cherché toute la journée, pour ne pas déranger, mais no solution...

En fait, dans mon fichier Excel de base, si par exemple 5 lignes concernent un même destinataire, lors du publipostage, 5 mails s'envoient à ce même destinataire... Je n'arrive pas à trouver comment faire pour que ces 5 lignes se retrouvent dans un même mail...
j'ai essayer de fusionner les 5 lignes de la colonne "adresse mail", et là, seule la première ligne s'est envoyée... J'ai fouillé partout dans l'aide du publipostage mais rien trouvé à ce niveau non plus...

merci d'avance pour votre aide!
et bonne fin de journée
m
0
l
a b L Programmation
15 Avril 2010 14:55:57

Bon et bien si on essayait de voir ça avant le publipostage, donc côté Excel, avant de tout envoyer 10 fois !

Admettons que tu ais deux colonnes, l'une avec les adresses, l'autre avec les messages:
  1. mel@f2mj ligne 1
  2. ----------------
  3. mel@f2mj ligne 2
  4. ----------------
  5. mel@f2mj ligne 3
  6. ----------------
  7. zeb@ppc ligne 4
  8. ----------------
  9. mel@f2mj ligne 5
  10. ----------------
  11. zeb@ppc ligne 6
  12. ----------------
  13. zeb@ppc ligne 7
  14. ----------------
  15. zeb@ppc ligne 8


Ce qui serait bien, ce serait de se retrouver avec ça :
  1. mel@f2mj ligne 1
  2. ligne 2
  3. ligne 3
  4. ligne 5
  5. ----------------
  6. zeb@ppc ligne 4
  7. ligne 6
  8. ligne 7
  9. ligne 8


Première des choses à faire, trier les données sur la colonne 1.
Ensuite, appliquer un ptit algo qui travaille en rupture :
  1. Dim cell As Range
  2.  
  3. ' // Première pour la cellule de référence
  4. Set cell = Range("A1")
  5.  
  6. ' // On boucle...
  7. Do
  8. ' // On compare la cellule de référence et la suivante
  9. If cell.Value = cell.Offset(1, 0).Value Then
  10. ' // On accumule deux cellules dans une seule
  11. cell.Offset(0, 1).Value = cell.Offset(0, 1).Value & vbCrLf & _
  12. cell.Offset(1, 1).Value
  13. ' // On supprime la zone prise en compte en dessous
  14. Range(cell.Offset(1, 0), cell.Offset(1, 1)).Delete xlShiftUp
  15. End If
  16. ' // On décale d'un cran vers le bas la cellule de référence
  17. Set cell = cell.Offset(1, 0)
  18.  
  19. ' // ...Jusqu'à la dernière ligne non vide
  20. Loop While cell.Value <> ""
m
0
l
15 Avril 2010 15:38:50

Merci beaucoup pour ton aide!

Voilà, j'ai trié les adresses que j'ai placées en colonne 1.

Bon après j'ai un peu cherché comment aller sur VB, mais j'ai trouvé le raccourci.
Une fois là, j'ai cliqué sur feuil1 en haut à gauche et j'ai copié-collé le code dans la nouvelle fenêtre.
Je suppose que je dois modifier certains noms du code? Désolée pour mes questions qui pourraient sembler très stupides mais je n'ai jamais fait de VB...
(J'ai voulu exécuter et le message "erreur de compilation: instruction incorrecte à l'extérieur d'une procédure" s'affiche...

Encore merci!
m
0
l
a b L Programmation
15 Avril 2010 16:11:02

Euh.... tu postes dans la cat' Forum Programmation : VB / VBA / VBS. Certains pré-requis sont nécessaires. Ici nous faisons de l'entraide entre développeurs :o  Cependant, nous acceptons volontiers les débutants.

Ah, bah tu dois tomber dans cette dernière catégorie :D 

------------------------------------

Une macro, en VB, commence par le mot clef Sub, suivi du nom de la macro, puis de (). Elle se termine par End Sub.

Tape donc juste
  1. Sub MaMacroQuiCopieDesLignesSurFeuillesDifferentesSousCondition

VB devrait ajouter les parenthèses et le End Sub, avec un espace vide entre les deux. Dans cet espace, tu peux mettre le code que je te propose.

__________________
PS: Tu n'es pas obligé d'utiliser le nom que je te propose pour ta macro [:patch]
m
0
l
16 Avril 2010 09:25:14

OK, merci!

signé: la débutante ;-)

PS: c'est un très joli nom pour une macro :D 
m
0
l