Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rdmoshpit

XLDnaute Nouveau
Hello vous tous,
je suis débutant en programmation de macro, et nouveau sur ce site.
Avant tout, je tenais a feliciter la communaute de ce forum pour sa précieuse aide.
Maintenant, je vous parle de mon problème. Deux fichiers sont joints pour que vous puissiez voir de quoi je parle.

J'ai donc un fichier excel tiré d'une base de donnée. Je souhaite le remettre en ordre dans un autre tableau.

Le fichier de départ, la base de donnée quoi, est en 2 colonnes. Chaque ligne correspond à un champ et sa valeur est dans la deuxième colonne.
les fiches sont les unes a la suite des autres et séparées par deux lignes vides. Dans le cas donné en PJ, la fiche 1 va de la ligne 1 à la ligne 37, la fiche 2 de la ligne 40 à la ligne 76, la 3 de la ligne 79 à 106, la 4 de 109 à 136, la 5 de 139 à 355, et la 6 de 358 à 410.
Les champs sont "classés" par "rubriques", en majuscule.
Vous pouvez déjà constater que toutes les fiches n'ont pas le même nombre de ligne. C'est parceque certaines rubriques ne sortent pas sur certaines fiches.

La première rubrique n'est pas nommée, et concernent les 3 premières lignes, la 2eme rubrique est la rubrique "CLIENT" (8 lignes), etc...

Le premier probleme est sur la (les) rubrique(s) REPIQUAGE-(1)(2)(3)(...)
Elles ne sont pas systématiquement présentent, et certaines fichent peuvent
avoir 10 repiquages (Repiquage-1, Repiquage-2, ..., Repiquage-10), 0 repiquage, ou 21 repiquages. Chaque rubrique repiquage a le même nombre de ligne (de champs), nommés identiquement.

Un problème identique (quoique que légerement plus simple je pense) se pose sur la rubrique "LIVRAISON-TRACT", présente ou absente suivant les fiche.

Voici "l'algoritme" auquel je pensais, qui est je suis sur beaucoup trop complexe
Est-ce que quelqu'un pourrait me dire si il y a plus simple, ou me donner de l'aide sur le code ? du genre, faire un test sur une cellule, je ne sais pas comment on fait en basic....



*/ inserer la rubrique "LIVRAISON-TRACT" si elle n'est pas dans la fiche
Faire un recherche "LIVRAISON" puis faire une recherche "Commande pour affaire", positionner en dessous
Si la valeur = "Livraison-Tract" alors fonction repiquage()
*/ si non, alors la rubrique est absente
sinon inserer ligne Livraison-Tract
inserer ligne Site-de-Livraison
inserer ligne responsable-Livraison
inserer ligne adresse
inserer ligne complement
inserer ligne code-postal
inserer ligne Ville
finsi

repiquage()
*/ Prévoir le nombre de repiquage maximum pour le fichier cible
Faire un recherche sur le nombre maximum de "Repiquage"
retourner la valeur "n" maximum
*/ insérer le nombre de rubrique repiquage manquante dans chaque fiche par rapport au nombre de repiquage-n
Faire une recherche "CLIENT", puis faire une recherche "fax". me positionner sur la cellule en dessous.
Faire un test sur la valeur de la cellule :
Si la valeur = "Livraison", pour i = 1 à n inserer n rubrique "Repiquage-i" à "Repiquage-n"
*/ si la valeur n'est pas "livraison", alors il il y a une rubrique "repiquage-1"
Autre, Faire une recherche "internet", positionner sur la cellule en dessous.
*/ tester si la valeur egale livraison, sinon il y a un repiquage-2
Si la valeur = "Livraison", pour i = 2 à n inserer n rubrique "Repiquage-i" à "Repiquage-n"
etc jusque n

déjà, ça, je ne sais pas le coder......



Merci d'avance

Raph
 

Pièces jointes

Re : macro excel

Bonsoir rdmoshpit,

Pour l'instant j'en suis la (CF PJ)
Mon idée etait de me servir des lignes des lignes vides pour isoler les fiches en feuil2 puis passer les données en feuil "CIBLE"
puis Recopier dans le second fichier

Effacer le contenue de la ligne 1 de CIBLE
Puis de boucler jusqu'a ce que la feuil1 soit vide

Malheuresement, Je ne comprends pas pourquoi mon 4eme Cells.find plante alors que les autres fonctionnent.
Et comme là, j'en ai marre. Je laisse tomber en esperant que tu pourras prendre le relai.


XanorK

Edit : avec la PJ, ca ira mieux. Decidement, je suis fatigué 😉
 

Pièces jointes

Re : macro excel

YES !!!

Salut rdmoshpit

J'ai pas compris pourquoi, ca marchait pas, ni pourquoi ca marche maintenant, mais le résultat est là.

Il ne reste plus qu'a recopier le contenu de la feuille cible dans le fichier 2 et fermer le fichier1 sans sauvegarde.
 

Pièces jointes

Re : macro excel

C'est juste excellent !!!

J'ai juste rajouté une petite fonction pour compter le nombre de repliquage, et j'avais un peu contourner notre probleme inexpliqué, mais tu l'as fait tellement plus proprement que moi !!!

Merci encore pour ton aide !

Bonne nuit,
Raph
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Traitement
Réponses
7
Affichages
79
Réponses
20
Affichages
724
Réponses
7
Affichages
107
Réponses
5
Affichages
64
Réponses
4
Affichages
150
Retour