Re : [VBA]Migration des données
Bonjour bcharef, le forum, la neige, les oiseaux engourdis et le reste du monde,
Je n'avais pas vu ton message #13, tu as donc bien fait d'insister
Ceci dit, je propose de te mettre à contribution et, sans t'expliquer dans le détail tout le code, de faire en sorte que tu puisses adapter la macro à ton autre fichier.
- Ouvre les 2 classeurs: MigrationTJournal (V4) et Migration TCompte. La fenêtre d'un des 2 classeurs étant active, appuye sur Alt+F11 (l'Editeur Vba s'affiche)
- à gauche de cette nouvelle fenêtre (dans l'explorateur de projet), repère MigrationTJournal et dans la petite arborescence, le 'Module1' (voir image en pièce jointe)
- Fais simplement un "cliquer-glisser" de ce module, sur le
VBAProject MigrationTCompte puis ferme le fichier MigrationTJournal
-Ne reste plus, dans l'Explorateur de projet que le fichier qui t'intéresse (TCompte). Double-clic sur le module1 pour afficher le code dans la partie principale de la fenêtre
- Il faut maintenant repérer les éléments qui doivent être modifiés:
* Ligne 5: Range("CJ") doit devenir Range("NCS")
* Lignes 6 & 7: l'offset (équivalent de DECALER) doit être, non plus d'1 colonne, mais de 2. Remplace donc (3 fois)
c.Offset(0, 1) par
c.Offset(0, 2)
* Lignes 13 & 16: le nom de la feuille est différent. Remplacer "TJournal", par "TCompte"
* Idem en ligne 23: remplacer en fin de chaîne "TJournal.xls" par "TCompte.xls"
* pour les colonnes à effacer, remplacer, en ligne 19 ".Range("C1:IV1")..." par ".Range("L1:IV1")..."
* pour les lignes je propose d'indiquer '+2' en fin de ligne 20, au lieu de '+1' (voir questions plus bas)
Le code est modifié
Si tu le souhaites, tu peux créer un bouton dans la feuille "AncienSystème": dans la feuille elle-même, dans le classeur Excel, menu "Affichage" > "Barres d'outils" > "Formulaires". Dans cette barre d'outils, repérer le "Bouton de commande", l'activer et "tracer un rectangle" dans la feuille. Au moment où tu relâches le bouton de la souris une fenêtre apparaît "Affecter une macro" (si pas, clic droit sur le bouton dans la feuille, puis choisir l'option "Affecter une macro") Dans les 2 cas, la macro (qui se nomme "test" doit apparaître dans la liste). Sélectionne-la et clique sur OK.
Avant d'exécuter la macro, efface les zones de textes et objets dessinés qui figurent éventuellement dans la feuille ... et vois les questions ci-dessous:
- Pas compris ce qu'il fallait faire des formules de la feuille "intermédiaire"
- Pas bien compris non plus pourquoi, en feuille "TCompte", il faut effacer des lignes en fonction du NBVAL+2 dans la plage NCS (qui contient les doublons, donc!?)
- Pas réglé, non plus la question de "toutes les cellules doivent être au format texte" qu'il me semblait avoir lue quelque part
Teste déjà tout ceci ... et dis-nous