Disfonctionnement Macro ou formule inter-feuilles dans un classeur

Bonjour à tous,

J'ai un souci sur Excel. Après vous me direz , si on est ici , c'est forcément à cause d'un souci.

Je vous expose le cas .

J'ai un classeur avec trois feuilles la première "DA" (pour demande d'Achat), la seconde "SuiviDA" pour archiver et suivre les DA créées, la troisième pour une Liste de Valeurs.

J'utilise 3 macros :

Une pour créer le Numéro de ma DA (feuille DA, colonne G, ligne 4) qui est constitué d'un numéro séquentiel et de l'année. Le numéro séquentiel est récupéré sur la première ligne du tableau "SuiviDA' en colonne D, ligne 6, l'année est récupérée lors de l'entrée de la date de la DA (feuille DA) en colonne C ligne 2.

Une macro sur le bouton "Validation" , qui va ajouter une ligne 6 dans "SuiviDA" , copier toutes les cellules de saisie de "DA" dans "SuiviDA" y compris le Numéro de DA et réinitialiser toutes les cellules de saisie de "DA" à l'exception du numéro de DA.

Une macro d'impression sous le bouton "Imprimante".

Mon souci c'est que lorsque j'active la macro VALIDATION, l'insertion , la copie et la réinitialisation se passent bien MAIS à la reprise sur DA la formule de Numéro de DA "=@NumDA(SuiviDA!$D$7;DA!C2)" pointe sur la deuxième ligne (colonne D, ligne 7) de SuiviDA. Même en figeant la cellule par $D$6, elle passe à 7.

Qu'est ce que j'ai raté ?

Une bonne (ou plusieurs) âme pourrait-elle m'aider ?

Merci de votre aide.

Bien cordialement

Philippe

Bonsoir et

Merc de joindre votre fichier anonymisé SVP

A+

10da.xlsm (39.76 Ko)

Bonjour,

Voici le classeur à soucis.

Bonne journée et merci

Re,

Outch... tous ces select

A la fin de la sub, au lieu de mettre

    Sheets("DA").Select
    Range("C2,F4,C5:G5,C6:G6,C7:G7,C8:G8,C9:G9,C10:G10,C11,B14:G31").Select
    Range("B14").Activate
    Application.CutCopyMode = False
    Selection.ClearContents

tu peux mettre en y ajoutant la réinscription de la formule comme voulu

  Sheets("DA").Range("C2,F4,C5:G10,C11,B14:G31").ClearContents
  Sheets("DA").Range("G4").FormulaLocal = "=NumDA(SuiviDA!$D$6;DA!C2)"
  Application.CutCopyMode = False

A+

Re

Génial, Merci beaucoup BrunoM45 pour ton aide précieuse .

Je débute et je galérais depuis trois jours sur ce problème.

Un grand merci.

Philippe from 241 (Libreville -GABON)

Bonjour @BrunoM45

Pour ma gouverne et mon amélioration, comment aurais-tu fait pour réduire le nombre de SELECT dans ma macro ??

Ma macro provient d'un enregistrement de Macro.

Merci si tu peux me conseiller

Philippe

Bonjour Philippe,

L'enregistreur de macros est très bien pour commencer, cela permet d'avoir la base

Ensuite il faut penser langage orienté objet, dans lequel il suffit de donnée les propriétés
ou les actions à cet objet (pas besoin de le sélectionner)

Donc dans ton code

Sheets("DA").Select
Range("C2").Select
Selection.Copy
Sheets("SuiviDA").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Tu peux tout simplement faire

Sheets("DA").Range("C2").Copy
Sheets("SuiviDA").Range("B6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False

Ou encore plus simple car pour inscrire une valeur inutile de faire du copier/coller
on peut tout simplement faire

Sheets("SuiviDA").Range("B6").Value = Sheets("DA").Range("C2").Value

Et ainsi de suite

Mais c'est comme tout, on peut se lancer dans un nouveau langage, mais il faut apprendre les bases avant

https://www.excel-pratique.com/fr/vba/introduction

A+

Re @BrunoM45

Merci beaucoup pour tes précisions.

C'est vrai que étant un ancien informaticien (Assembleur, Cobol, SQL et PL/SQL sous Oracle) et ayant basculé vers des Projets Réseaux FH et Fibres WAN et MAN, je reviens à mes premiers amours et je pensais que j'allais m'en sortir facilement.

Mais il faut remettre tous les jours ses acquis en doute . Et penser VBA, je vais lire ta recommandation sur les bases.

je te remercie.

Bon week-end

Philippe

Rechercher des sujets similaires à "disfonctionnement macro formule inter feuilles classeur"