Insertion automatique et conditionnelle d'une
Résolu
Robocopp
Messages postés
162
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'utilise des fichiers d'adresses triés par liasses en publipostage sous Word pour imprimer des étiquettes adresses.
Dans Excel, à chaque début de liasse, apparait un "X" dans une colonne destinée à cet effet.
Ma question est de savoir s'il est possible à chaque fois qu'apparait le "X", il est possible sans utiliser de macro d'insérer une ligne vide (dans un premier temps)juste au dessus , ceci afin de créer un séparation.
Si c'est faisable, j'aimerais que cette ligne génère un étiquette avec un message d'alerte quelconque pour faciliciter la séparation des liasses.
Merci d'avance pour vos lumières.
J'utilise des fichiers d'adresses triés par liasses en publipostage sous Word pour imprimer des étiquettes adresses.
Dans Excel, à chaque début de liasse, apparait un "X" dans une colonne destinée à cet effet.
Ma question est de savoir s'il est possible à chaque fois qu'apparait le "X", il est possible sans utiliser de macro d'insérer une ligne vide (dans un premier temps)juste au dessus , ceci afin de créer un séparation.
Si c'est faisable, j'aimerais que cette ligne génère un étiquette avec un message d'alerte quelconque pour faciliciter la séparation des liasses.
Merci d'avance pour vos lumières.
A voir également:
- Insertion automatique et conditionnelle d'une
- Mise en forme conditionnelle excel - Guide
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Excel liste déroulante conditionnelle - Guide
4 réponses
Non, une ligne vide dans une base de données signifie que la base de données est terminée. Pour rester généraliste, il faut éviter toute fioriture inutile dans les bases de données (lignes inutiles, fusion de cellules, formats spéciaux, ...)
Patrice
Patrice
Bonjour,
Une proposition suite à tes explications.
Une macro pour mettre les XXXX, une pour les enlever.
Au début 3 constantes pour adapter à ta feuille.
Saisir 0 dans l'inputbox pour quitter la macro sans insérer.
A mettre dans la feuille concernée
eric
Une proposition suite à tes explications.
Une macro pour mettre les XXXX, une pour les enlever.
Au début 3 constantes pour adapter à ta feuille.
Saisir 0 dans l'inputbox pour quitter la macro sans insérer.
Option Explicit Const nbColAdr As Long = 5 ' nombre de colonnes à remplir avec le motif Const motif As String = "XXXXX" ' motif Const ligneDeTitre = 1 ' nombre de lignes de titre de colonne Sub insertXXXXX() Dim nb As Long, lig As Long nb = Application.InputBox(Title:="Saisir le nombre d'exemplaires à regrouper", prompt:="Taille des liasses", Type:=1) Application.ScreenUpdating = False While lig < [A65536].End(xlUp).Row If nb > 0 Then lig = lig + nb + 1 + IIf(lig < nb, ligneDeTitre, 0) Rows(lig).Insert Shift:=xlDown Cells(lig, 1).Resize(1, nbColAdr) = motif End If Wend Application.ScreenUpdating = True End Sub Sub suppXXXXX() Dim lig As Long Application.ScreenUpdating = False For lig = [A65536].End(xlUp).Row To 2 Step -1 If Cells(lig, 1) = motif Then Rows(lig).Delete Shift:=xlUp Next lig Application.ScreenUpdating = True End Sub
A mettre dans la feuille concernée
eric
Bonjour Eriiic,
Merci pour ta réponse tu es la preuve s'il en fallait une que je ne joue pas dans la même division que toi, Patrice et beaucoup d'autres sur ce forum.
En effet, je n'y connais rien en macros, je ne sais même pas où il faudrait copier ce que tu m'envoies,ni ce que ça peut donner.
Je suis désolé de t'avoir fait perdre ton temps, en fait, je suis vraiment une grosse buse qui demande de l'aide et qui éconduit les gens sympas qui lui répondent.
Vraiment, je suis désolé, mais je te remercie d'avoir passé du temps à te pencher sur ce problème. Je pense que je vais essayer la proposition de Patrice qui me parle mieux.
J'espère que tu ne m'en voudras pas.
Cordialement.
Merci pour ta réponse tu es la preuve s'il en fallait une que je ne joue pas dans la même division que toi, Patrice et beaucoup d'autres sur ce forum.
En effet, je n'y connais rien en macros, je ne sais même pas où il faudrait copier ce que tu m'envoies,ni ce que ça peut donner.
Je suis désolé de t'avoir fait perdre ton temps, en fait, je suis vraiment une grosse buse qui demande de l'aide et qui éconduit les gens sympas qui lui répondent.
Vraiment, je suis désolé, mais je te remercie d'avoir passé du temps à te pencher sur ce problème. Je pense que je vais essayer la proposition de Patrice qui me parle mieux.
J'espère que tu ne m'en voudras pas.
Cordialement.
Bonjour,
Pas de problème comme patrice a réussi par formule (solution maligne ;-) )
Un fichier exemple quand même pour la macro :
http://www.cijoint.fr/cjlink.php?file=cj201110/cijeFkogP5.xls
clic-droit sur le nom d'onglet en bas (Feuil1) et choisir 'visualiser le code' pour accéder à la macro.
eric
Pas de problème comme patrice a réussi par formule (solution maligne ;-) )
Un fichier exemple quand même pour la macro :
http://www.cijoint.fr/cjlink.php?file=cj201110/cijeFkogP5.xls
clic-droit sur le nom d'onglet en bas (Feuil1) et choisir 'visualiser le code' pour accéder à la macro.
eric
Avec tes explications, je comprends mieux le problème, sans macro c'est aussi possible en utilisant la fonction tri, pour 1000 à 2000 adresses ça peux aller, mais pour 50 à 60000 adresses les temps de calcul et de tri deviennent gigantesques (plusieurs dizaines de minutes).
Voici un exemple :
https://www.cjoint.com/?AJpwAOUPNjz
Dans ce cas, la meilleure solution pour insérer les lignes de X est d'utiliser une macro.
Voici un exemple :
https://www.cjoint.com/?AJpwAOUPNjz
Dans ce cas, la meilleure solution pour insérer les lignes de X est d'utiliser une macro.
Bonjour Patrice
Je pense que je vais essayer ta proposition même si les calculs sont longs, ça devrait prendre moins de temps que d'insérer des trucs à la main. De toute façon je vais essayer pour être sûr que ça puisse être applicable en situation de production. En fait, si j'ai bien compris, tu penses comme Eriiic que le mieux serait une macro. Je pense qu'il va falloir que j'apprenne au moins pour vous remercier.
J'ai bien compris le mode d'emploi de ton exemple, mais si j'osais, je te demanderais de me "traduire" les formules des colonnes A et B car c'est déjà bien costaud pour moi, et j'aime bien comprendre ce que je fais. J'espère que je n'abuse pas trop.
Mille Merci.
Au fait, on voit que le routage ça te dit quelque-chose.
Bien Cordialement.
Patrick
Je pense que je vais essayer ta proposition même si les calculs sont longs, ça devrait prendre moins de temps que d'insérer des trucs à la main. De toute façon je vais essayer pour être sûr que ça puisse être applicable en situation de production. En fait, si j'ai bien compris, tu penses comme Eriiic que le mieux serait une macro. Je pense qu'il va falloir que j'apprenne au moins pour vous remercier.
J'ai bien compris le mode d'emploi de ton exemple, mais si j'osais, je te demanderais de me "traduire" les formules des colonnes A et B car c'est déjà bien costaud pour moi, et j'aime bien comprendre ce que je fais. J'espère que je n'abuse pas trop.
Mille Merci.
Au fait, on voit que le routage ça te dit quelque-chose.
Bien Cordialement.
Patrick
Bonjour,
La formule de la colonne B sert à numéroter les liasses (c-à-d les X en colonne F)
La formule de la colonne A comprend 2 volets :
1) pour les lignes contenant une adresse (c-à-d les ligne dont le code postal n'est pas X), elle numérote les adresses successivement (incrément de 1) et , en plus, à chaque nouvelle liasse elle incrémente ce numéro de ligne de la valeur du numéro de liasse (pour laisser la place à la ligne de XXXXX à insérer).
2) pour les lignes de XXXXX ajoutées à la fin de la base de données (c-à-d les dont le code postal est X), elle attribue un numéro de ligne qui correspond à un des emplacements laissés libre par la numérotation des adresses (en 1, ci-dessus).
Le tri fait le reste : il ramène les ligne de XXXXX avant chaque liasse (c-à-d avant chaque X en colonne F)
Cordialement
Patrice
La formule de la colonne B sert à numéroter les liasses (c-à-d les X en colonne F)
La formule de la colonne A comprend 2 volets :
1) pour les lignes contenant une adresse (c-à-d les ligne dont le code postal n'est pas X), elle numérote les adresses successivement (incrément de 1) et , en plus, à chaque nouvelle liasse elle incrémente ce numéro de ligne de la valeur du numéro de liasse (pour laisser la place à la ligne de XXXXX à insérer).
2) pour les lignes de XXXXX ajoutées à la fin de la base de données (c-à-d les dont le code postal est X), elle attribue un numéro de ligne qui correspond à un des emplacements laissés libre par la numérotation des adresses (en 1, ci-dessus).
Le tri fait le reste : il ramène les ligne de XXXXX avant chaque liasse (c-à-d avant chaque X en colonne F)
Cordialement
Patrice
Bonsoir tout le monde,
En fait, si j'ai bien compris, tu penses comme Eriiic que le mieux serait une macro. Je pense qu'il va falloir que j'apprenne...
Je t'ai mis ici un fichier exemple pour la macro.
eric
En fait, si j'ai bien compris, tu penses comme Eriiic que le mieux serait une macro. Je pense qu'il va falloir que j'apprenne...
Je t'ai mis ici un fichier exemple pour la macro.
eric
Bonsoir Patrice,
Grâce à ton aide, j'ai pu mettre mon fichier au point.
J'ai eu quelques problèmes car les lignes vides généraient un "0" qui modifiait la place de ma marque "X" et il manquait des lignes après le tri.
Je te joins 3 liens qui seront plus parlants.
https://www.cjoint.com/?AJttNrwG0bM
https://www.cjoint.com/?AJttO0mLr3o
https://www.cjoint.com/?AJttQla7oGV
Ça vaut ce que ça vaut, mais ça marche, l'important est de comprendre ce qu'on fait.
J'ai pas tout compris, mais petit à petit je pense que ce n'est pas désespéré.
Bien sûr si tu vois des trucs à améliorer, je suis preneur.
Vraiment sans ta contribution, je n'y serais pas arrivé.
Je pense que je vais faire des fichiers de 20 000 plis, en effet, je fais mon publipostage par 4 ex/flle ce qui ne fait que 5000 lignes. j'espère qu'Excel voudra les avaler.
Mille merci et à bientôt j'espère.
Bien Cordialement.
Grâce à ton aide, j'ai pu mettre mon fichier au point.
J'ai eu quelques problèmes car les lignes vides généraient un "0" qui modifiait la place de ma marque "X" et il manquait des lignes après le tri.
Je te joins 3 liens qui seront plus parlants.
https://www.cjoint.com/?AJttNrwG0bM
https://www.cjoint.com/?AJttO0mLr3o
https://www.cjoint.com/?AJttQla7oGV
Ça vaut ce que ça vaut, mais ça marche, l'important est de comprendre ce qu'on fait.
J'ai pas tout compris, mais petit à petit je pense que ce n'est pas désespéré.
Bien sûr si tu vois des trucs à améliorer, je suis preneur.
Vraiment sans ta contribution, je n'y serais pas arrivé.
Je pense que je vais faire des fichiers de 20 000 plis, en effet, je fais mon publipostage par 4 ex/flle ce qui ne fait que 5000 lignes. j'espère qu'Excel voudra les avaler.
Mille merci et à bientôt j'espère.
Bien Cordialement.
Bonsoir,
Voici une autre solution, à partir de ton fichier avant tri :
https://www.cjoint.com/?AJtxeOXHfJz
Cordialement
Patrice
Voici une autre solution, à partir de ton fichier avant tri :
https://www.cjoint.com/?AJtxeOXHfJz
Cordialement
Patrice
Bonsoir Patrice,
"Voici une autre solution, à partir de ton fichier avant tri : "
Alors en plus du reste on est modeste? En fait, c'est notre fichier.
Merci pour cette nouvelle version avec des formules plus simples que ce que j'ai pu tirer des mes neurones torturés.
Par contre, quand on fait le tri, il y a des lignes qui disparaissent dans la colonne A (22,48,58,78,etc).
J'ai encore un autre souci, les 3 lignes avec des "X" ne suffisent pas, il faudrait que toutes les lignes vides ( col. C à M )soient remplies de "X", tu crois que c'est possible?
Bien Cordialement.
Patrick
"Voici une autre solution, à partir de ton fichier avant tri : "
Alors en plus du reste on est modeste? En fait, c'est notre fichier.
Merci pour cette nouvelle version avec des formules plus simples que ce que j'ai pu tirer des mes neurones torturés.
Par contre, quand on fait le tri, il y a des lignes qui disparaissent dans la colonne A (22,48,58,78,etc).
J'ai encore un autre souci, les 3 lignes avec des "X" ne suffisent pas, il faudrait que toutes les lignes vides ( col. C à M )soient remplies de "X", tu crois que c'est possible?
Bien Cordialement.
Patrick
« Par contre, quand on fait le tri, il y a des lignes qui disparaissent dans la colonne A (22,48,58,78,etc). »
Rassure-toi, les lignes ne disparaissent pas, pour des raisons de simplicité, j'ai utilisé une formule qui donne des numéros chronologiques mais pas consécutifs : elle saute un numéro à chaque ligne de X
« J'ai encore un autre souci, les 3 lignes avec des "X" ne suffisent pas, il faudrait que toutes les lignes vides ( col. C à M )soient remplies de "X", tu crois que c'est possible? »
Il n'y a aucun problème tu peux remplir de XXXX les cellules Cx à Mx sauf le code postal (col L) dans lequel il ne doit y avoir qu'un seul X.
Cordialement
Patrice
Rassure-toi, les lignes ne disparaissent pas, pour des raisons de simplicité, j'ai utilisé une formule qui donne des numéros chronologiques mais pas consécutifs : elle saute un numéro à chaque ligne de X
« J'ai encore un autre souci, les 3 lignes avec des "X" ne suffisent pas, il faudrait que toutes les lignes vides ( col. C à M )soient remplies de "X", tu crois que c'est possible? »
Il n'y a aucun problème tu peux remplir de XXXX les cellules Cx à Mx sauf le code postal (col L) dans lequel il ne doit y avoir qu'un seul X.
Cordialement
Patrice
Merci de ta réponse si rapide, mais si tu pouvais m'en dire plus sur les filtres, ça m"intéresse.
Tu vas dire que j'insiste, mais si le "X" commande l'insertion d"une ligne remplie de "X' dans chaque champ, c'est pareil ou pas ?
Cordialement.
Si tu as des colonnes avec des X qui permettent d'identifier chaque liasse, en mettant un filtre automatique, tu n'ajouteras pas de ligne mais tu pourras n'afficher qu'une liasse au choix.
Parfois, il est plus simple de changer de méthode de travail, plutôt que persister dans des voies aux issues aussi incertaines et que problématiques.
Quand tu écris: " Parfois, il est plus simple de changer de méthode de travail, plutôt que persister dans des voies aux issues aussi incertaines et que problématiques" , tu as tout à fait raison, c'est pour cela que je demande conseil, et c'est un plaisir sur ce forum de rencontrer autant de solidarité et de qualité.
Moi, j'image des choses à partir de choses que je crois savoir faire, et je suis tout à fait partant pour tout mettre au panier pour faire les choses dans les règles. C'est grâce à des personnes comme toi ( et d'autres qui m'ont déjà beaucoup apporté et qui se reconnaitront) que j'ai des chances de progresser.
J'abandonne donc les lignes avec des"x".
Je pense à ta lecture que je me suis encore une fois mal exprimé; en fait, je ne veux pas afficher une liasse spécialement, je cherche à intercaler entre les étiquettes au moment de l'impression une étiquette de séparation .
Je vais essayer d'être le plus clair possible .
Mon problème est à la fois simple et compliqué ( ça commence bien).
Mon but est de faire du tri postal avec des personnes qui n'ont pas accès à la lecture ni au calcul et tout cela en utilisant une machine qui mes des brochures sous film plastique. Sur cette brochure ( et sous le film), la machine dépose un porte-adresse. Je peux donc avoir 50 ou 60 000 adresses imprimées. Jusqu'ici pas de problème.
Là où ça devient moins évident, c'est que ces adresses sont à regrouper par liasses(10, 20, 50 ou 100 ex ou plus) en sortant de la machine et le "X" que je rajoute dans ma colonne n'est pas toujours bien visible. D'où l'idée d'intercaler entre chaque liasse un porte adresse rempli de"X" ( et donc beaucoup facile à distinguer. Jusqu'ici, avec mes collègues, nous insérions des étiquettes de couleur dans les piles d'étiquettes à cet endroit. À la sortie de la machine, c'est l'étiquette qui fait la séparation. Je voudrais améliorer le truc tout en restant dans une logique de production et continuer ainsi à prouver que le handicap n'est pas incompatible avec qualité et fiabilité du travail accompli.
Pour le tirages moyens, l'insertion des plis sous pochettes plastiques se fait à la main, c'est là où mes fameux "X" imprimés sur les porte - adresses prennent toute leur importance puisque la vitesse est moindre évidemment qu'avec la machine et donc facilement identifiables. Ca marche bien, et mes " p 'tis gars" adorent ce type de boulot, côté qualité, c'est impeccable. Bref, tout le monde est content. Ma démarche est peut être un peu militante, mais comme ils disent chez l'Oréal: "Ils le valent bien".
Voilà, je pense que tu sais tout, mais je pense que je vais continuer à mettre mes étiquettes de couleur à la main.
Quoiqu'il en soit, merci pour tes indications précieuses.
Cordialement.