N
nicolas
Guest
Bonjour cher Forum,
J'aimerais savoir ce que vous pensez de ma macro (ce message fait suite à un autre posté hier avec un autre intitulé ("liens entre classeurs"))
Mon premier classeur = fiche technique à remplir (différents champs comme numéro de fiche, date, nom de l'émetteur etc => ce n'est pas un userform).
Chaque fiche doit etre sauvegardée sous son numéro.(donc accumulation de classeurs correspondant aux fiche remplies + le classeur avec la fiche vierge)
Mon deuxième classeur = récapitulatif de toutes les fiches techniques (on retrouve certains des champs du 1er classeur)
A chaque nouvelle fiche enregistrée (1er classeur), une nouvelle ligne est insérée dans le deuxième classeur avec la valeur des champs du premier classeur. Jusque la ok
Le truc c'est que les fiches techniques sont ressorties plus tard et mises à jour (on remplit les champs manquants). Donc dans mon deuxième classeur, c'est pas une nouvelle ligne qui est créée mais c'est la ligne correspondante au premier enregistrement qui est sélectionnée et les champs vides sont mis à jour.
Je me suis dis que la manip suivante pourrait marcher :
Chaque champ correspond à une zone de texte nommée sur la fiche vierge. On trouve sur cette fiche vierge un bouton "enregistrer" auquel est affecté une macro.
Cette macro fait la chose suivante si c'est une nouvelle fiche :
elle sauvegarde la fiche sous son numéro
elle ouvre le deuxième classeur
elle regarde si le numéro de la fiche correspond à un en-tête de ligne
elle insère une ligne vu que c'est le premier enregistrement et que le numéro est nouveau
elle fait un copier/coller des zones de texte nommées dans le 2ème classeur sur notre nouvelle ligne créée.
elle sauve le 2ème classeur et le ferme.
Dans le cas d'une mise à jour, l'utilisateur va ouvrir la fiche technique numérotée partiellement remplie et la compléter. On retrouve donc notre bouton "enregistrer" auquel est affectée la meme macro forcément:
la macro sauvegarde la fiche sous son numéro
elle ouvre le deuxième classeur
elle cherche si le numéro existe et le trouve=>donc pas d'insertion de ligne
elle fait un copier/coller des zones de texte nommées dans la ligne corespondant au numéro de fiche
elle sauve le 2ème classeur et le ferme.
Je pensais au départ que le copier/coller des champs ne marcherait pas vu qu'on a une fiche vierge et des fiches numérotées (donc les liaisons ne seraient plus valables) mais je me dis qu'avec des zones de texte nommées, y'a plus de pb.
Dites moi ce que vous en pensez si vous avez réussi à lire cet ENORME topic. Et je m'en excuse d'ailleurs
merci d'avance
a plus
koko
J'aimerais savoir ce que vous pensez de ma macro (ce message fait suite à un autre posté hier avec un autre intitulé ("liens entre classeurs"))
Mon premier classeur = fiche technique à remplir (différents champs comme numéro de fiche, date, nom de l'émetteur etc => ce n'est pas un userform).
Chaque fiche doit etre sauvegardée sous son numéro.(donc accumulation de classeurs correspondant aux fiche remplies + le classeur avec la fiche vierge)
Mon deuxième classeur = récapitulatif de toutes les fiches techniques (on retrouve certains des champs du 1er classeur)
A chaque nouvelle fiche enregistrée (1er classeur), une nouvelle ligne est insérée dans le deuxième classeur avec la valeur des champs du premier classeur. Jusque la ok
Le truc c'est que les fiches techniques sont ressorties plus tard et mises à jour (on remplit les champs manquants). Donc dans mon deuxième classeur, c'est pas une nouvelle ligne qui est créée mais c'est la ligne correspondante au premier enregistrement qui est sélectionnée et les champs vides sont mis à jour.
Je me suis dis que la manip suivante pourrait marcher :
Chaque champ correspond à une zone de texte nommée sur la fiche vierge. On trouve sur cette fiche vierge un bouton "enregistrer" auquel est affecté une macro.
Cette macro fait la chose suivante si c'est une nouvelle fiche :
elle sauvegarde la fiche sous son numéro
elle ouvre le deuxième classeur
elle regarde si le numéro de la fiche correspond à un en-tête de ligne
elle insère une ligne vu que c'est le premier enregistrement et que le numéro est nouveau
elle fait un copier/coller des zones de texte nommées dans le 2ème classeur sur notre nouvelle ligne créée.
elle sauve le 2ème classeur et le ferme.
Dans le cas d'une mise à jour, l'utilisateur va ouvrir la fiche technique numérotée partiellement remplie et la compléter. On retrouve donc notre bouton "enregistrer" auquel est affectée la meme macro forcément:
la macro sauvegarde la fiche sous son numéro
elle ouvre le deuxième classeur
elle cherche si le numéro existe et le trouve=>donc pas d'insertion de ligne
elle fait un copier/coller des zones de texte nommées dans la ligne corespondant au numéro de fiche
elle sauve le 2ème classeur et le ferme.
Je pensais au départ que le copier/coller des champs ne marcherait pas vu qu'on a une fiche vierge et des fiches numérotées (donc les liaisons ne seraient plus valables) mais je me dis qu'avec des zones de texte nommées, y'a plus de pb.
Dites moi ce que vous en pensez si vous avez réussi à lire cet ENORME topic. Et je m'en excuse d'ailleurs
merci d'avance
a plus
koko