Code vba copier coller les données dans plusieurs feuilles selon conditions
Résolu/Fermé
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
-
24 janv. 2019 à 08:37
cracram Messages postés 9 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 24 janvier 2019 - 24 janv. 2019 à 13:22
cracram Messages postés 9 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 24 janvier 2019 - 24 janv. 2019 à 13:22
A voir également:
- Copier plusieurs feuilles excel dans un autre classeur vba
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Si et excel - Guide
- Fusionner plusieurs feuilles excel en une seule - Guide
- Copier une vidéo youtube - Guide
4 réponses
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
24 janv. 2019 à 09:44
24 janv. 2019 à 09:44
A tester... ce code dispatche les lignes dans les feuilles correspondantes et supprime les ligne de la feuille vl06o à mesure. Colle ce code dans un module de ton fichier et ça devrait faire l'affaire
Sub repartition_info() Dim ws As Object, b As Object Set b = Worksheets("vl06o") '<< feuille de base col = 9 '<< numéro de colonne contenant les numéro de réceptionnaire dans la feuille de base For i = 1 To b.Range("I65536").End(xlUp).Row Select Case b.Cells(i, col).Value Case "1000954" Set ws = Worksheets("LKW Walter") Case "1000916" Set ws = Worksheets("DSV") Case "1000125", "10002812", "1010626", "1000804" Set ws = Worksheets("WOEHL") Case "1003386", "1000249" Set ws = Worksheets("GEODIS") Case Else GoTo nex End Select b.Rows(i).Copy ws.Rows(ws.Range("A65536").End(xlUp).Row + 1) b.Rows(i).EntireRow.Delete i = i - 1 nex: Next i End Sub
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
24 janv. 2019 à 10:49
24 janv. 2019 à 10:49
Re, voici ton fichier : https://www.cjoint.com/c/IAyjSXsvL3N
clique sur le bouton "dispatche et suppression" pour exécuter la macro
NB : comme le fichier contient une macro, enregistre le avant de l'ouvrir et contrôle que l'extension du fichier soit bien ".xlsm". Si ce n'est pas le cas modifie la manuellement en renommant le fichier. Sinon il est possible que tu aies un message d'erreur en l'ouvrant directement depuis cjoint.
Bonne journée
Jc
clique sur le bouton "dispatche et suppression" pour exécuter la macro
NB : comme le fichier contient une macro, enregistre le avant de l'ouvrir et contrôle que l'extension du fichier soit bien ".xlsm". Si ce n'est pas le cas modifie la manuellement en renommant le fichier. Sinon il est possible que tu aies un message d'erreur en l'ouvrant directement depuis cjoint.
Bonne journée
Jc
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
24 janv. 2019 à 10:57
24 janv. 2019 à 10:57
Merci beaucoup Titeufdu89. C'est exactement ce que je voulais comme résultat!!!
Serait-il possible que tu corriges la première macro que j'ai faite si ça ne t'embête pas? J'aimerais la ligne 1 soit figée lorsque je clique sur le 1er bouton (car il s'agit de l'entête) au lieu qu'elle se retrouve en bas de page.
Serait-il possible que tu corriges la première macro que j'ai faite si ça ne t'embête pas? J'aimerais la ligne 1 soit figée lorsque je clique sur le 1er bouton (car il s'agit de l'entête) au lieu qu'elle se retrouve en bas de page.
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
Modifié le 24 janv. 2019 à 12:14
Modifié le 24 janv. 2019 à 12:14
Voici ton fichier : https://www.cjoint.com/c/IAylkcPDblN
Pour info j'ai juste changé une ligne du code initial :
J'ai changé le "Header:=xlNO" en "Header:=xlYes" dans la ligne de code qui gère le tri de ton tableau de façon à ce qu'il ne prenne pas en considération la ligne des titres.
Bonne journée
Jc
Pour info j'ai juste changé une ligne du code initial :
PL.Sort O.Range("B2"), xlAscending, O.Range("F2"), , xlAscending, Header:=xlNo
J'ai changé le "Header:=xlNO" en "Header:=xlYes" dans la ligne de code qui gère le tri de ton tableau de façon à ce qu'il ne prenne pas en considération la ligne des titres.
Bonne journée
Jc
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
24 janv. 2019 à 13:22
24 janv. 2019 à 13:22
Merci cest super.
Bonne journée également.
Bonne journée également.
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
24 janv. 2019 à 09:09
24 janv. 2019 à 09:09
Bonjour,
Dans quelle colonne sont contenus les numéros de réceptionnaire?
Quelle est le nom de ta feuille de base?
Bonne journée
Jc
Dans quelle colonne sont contenus les numéros de réceptionnaire?
Quelle est le nom de ta feuille de base?
Bonne journée
Jc
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
24 janv. 2019 à 09:15
24 janv. 2019 à 09:15
Bonjour merci pour ta réponse rapide, le nom de de la feuille est vl06o et les numéros de réceptionnaire sont dans la colonne I à partir de la cellule I2.
Bonne journée
Bonne journée
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
24 janv. 2019 à 09:24
24 janv. 2019 à 09:24
Ok, les informations contenues dans la feuille vl06o sont elle supprimées une fois dispatchées dans les feuilles correspondantes ou restent-elles?
Car si elles ne sont pas supprimées ça signifie qu'avant de copier une ligne il faut vérifier qu'elle ne soit pas déjà présente dans la feuille de destination sans quoi à chaque execution de la macros toutes les lignes seront redispatcher à nouveau, même si elle l'ont déjà été lors d'une précédante execution. Si tel est le cas, combien de colonnes comporte ton tableau? Aurais tu une colonne qui comporterait un code unique sans doublon qui pourrais servir d'ID pour le contrôle?
Merci
Jc
Car si elles ne sont pas supprimées ça signifie qu'avant de copier une ligne il faut vérifier qu'elle ne soit pas déjà présente dans la feuille de destination sans quoi à chaque execution de la macros toutes les lignes seront redispatcher à nouveau, même si elle l'ont déjà été lors d'une précédante execution. Si tel est le cas, combien de colonnes comporte ton tableau? Aurais tu une colonne qui comporterait un code unique sans doublon qui pourrais servir d'ID pour le contrôle?
Merci
Jc
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
24 janv. 2019 à 09:31
24 janv. 2019 à 09:31
Re,
Oui les informations contenues dans le tableau de la feuille vl06o sont supprimées une fois dispatchées dans les feuilles correspondantes.
Le tableau comporte 6 colonnes (H, I, J, K,L et M) sachant que les lignes du tableau peuvent aller de 2 à +infini.
La colonne sans doublon pourrait-être la colonne H contenant les n°BL.
Oui les informations contenues dans le tableau de la feuille vl06o sont supprimées une fois dispatchées dans les feuilles correspondantes.
Le tableau comporte 6 colonnes (H, I, J, K,L et M) sachant que les lignes du tableau peuvent aller de 2 à +infini.
La colonne sans doublon pourrait-être la colonne H contenant les n°BL.
cracram
Messages postés
9
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
24 janvier 2019
24 janv. 2019 à 09:23
24 janv. 2019 à 09:23
24 janv. 2019 à 10:14
Sais-tu où je peux joindre un exemple du fichier? ou sinon en expliquant les codes peut-être j'arriverai à faire les modifications selon mon classeur.
Merci d'avance
24 janv. 2019 à 10:17
24 janv. 2019 à 10:25
Modifié le 24 janv. 2019 à 10:32
Après ajout des informations dans la feuille concernée est-ce qu'on supprime les informations contenues de H à M seulement ou la ligne entière, ou rien?
24 janv. 2019 à 10:36