macro excel

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

  • rdmoshpit.xls
    34 KB · Affichages: 62
  • rdmoshpit_destination.xls
    17.5 KB · Affichages: 128

XanorK

XLDnaute Occasionnel
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

  • rdmoshpit.zip
    17.9 KB · Affichages: 29
  • rdmoshpit.zip
    17.9 KB · Affichages: 28
  • rdmoshpit.zip
    17.9 KB · Affichages: 29

rdmoshpit

XLDnaute Nouveau
Re : macro excel

nikel, merci beaucoup
J'ai deja jeté un coup d'oeil cette nuit et je ne comprends pas non plus, je regarde ca plus en profondeur en debut d'apres-midi.

Si quelqu'un a un avis sur le cell.find qui ne marche pas... je suis preneur !

a+
Raph
 

XanorK

XLDnaute Occasionnel
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

  • rdmoshpit.zip
    19 KB · Affichages: 22
  • rdmoshpit.zip
    19 KB · Affichages: 24
  • rdmoshpit.zip
    19 KB · Affichages: 24

rdmoshpit

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
21
Affichages
893
Réponses
3
Affichages
239