Copier coller en recherchant une ligne specifique

« Quand tu auras le temps , toujours aucune urgence , si tu pourras jeter un œil à ma macro " SAISIE NCF " , c’ est la plus lourde de toutes je pense »

Où est-elle je ne la vois pas dans la liste :

La voici désolé , tu as mon fichier complet

Non-Conformité - Copie.xlsm (421,9 Ko)

Oui , je vais le rajouter , bonne remarque , comme c’est une suppression de lignes , ça serai dommageable contrairement à d’autre fonction ( copier/coller … )
Merci pour la remarque

Par contre , petite question ?
Pourquoi faire rèférence 2 fois à la feuille ?

Moi j’ai mis ça

Ca fonctionne donc quelle et la différence ?

Il serait bien pour m’alléger la tâche que tu me décrives son fonctionnement :

données source utilisées
Cible attendues avec conditions
Les cas particuliers si il y en a

Je pourrais trouver tout ce schéma en décortiquant le code ligne par ligne mais il est plus difficile de deviner la recette d’un traitement pour un néophyte du fonctionnement recherché que d’en établir tout le déroulement pour un utilisateur averti baignant au quotidien dans l’univers concerné
De plus compte tenu de la qualité de cette procédure relativement lourde comment savoir si des instructions ne sont pas superflues sans connaitre l’objectif à atteindre
Si donc tu pouvais m’apporter ce petit plus ce sera appréciable

Attention toute définition de cellules (instruction Range) si elle n’est pas précédée de l’onglet à utiliser sera considérée en rapport avec l’onglet actif
Donc chaque instruction Range doit avoir son onglet défini qui le précède sinon Excel d’autorité l’attribut à l’onglet actif à l’écran

Range("H13").End(xlDown).End(xlToRight)

Sans onglet attribué Excel dans cet instruction cherchera à partir de la cellule H13 la dernière cellule vers le bas de la colonne H de l’onglet actif puis la dernière cellule vers la droite de la ligne de cette dernière cellule

Fais l’essais à la main sur plusieurs onglets tu verras que tu n’auras pas le même résultat quant à la cellule obtenu

Je viens de lancer la macro actualisation en me mettant dans un autre onglet , il m’affiche une erreur 1004

image

J’avais quand meme dupliquer mon classeur avant, dans le doute , bref je vais le rajouter quand même

Attention tu as supprimé un Sheets(« STOCK NCF ») dans la parenthèse qui doit être l’origine de ce dysfonctionnement celui-ci est indispensable si le traitement n’est pas exécuté à partir de l’onglet « STOCK NCF »
Je maintiens qu’il faut cette ligne de code pour éviter des ennuis de ce type ou autre :

Sheets("STOCK NCF").Range("H13", Sheets("STOCK NCF").Range("H13").End(xlDown).End(xlToRight)).EntireRow.Delete Shift:=xlUp

Après l’avoir remise en l’état à l’identique réessaies le traitement dans un autre onglet voir si le blocage persiste

Fais moi un retour

Alors
Il faut déja tirer le numéro de la Non Conformité dans l’onglet BASE NC ( pour passer de NCF-2024-0 à NCF-2024-1 dans la ligne vide suivante

Puis Coller
Les différents champs de « SAISIE NCF » vers les colonnes correspondantes ( (Même titre d’entête ) de « BASE NC »

Copier également les valeurs (soit à partir de SAISIE NCF ou de BASE NC ) vers FICHE DE NC

Exporter l’onglet FICHE DE NC au format PDF dans la même destination que l’emplacement du fichier excel et avec comme nom , le numéro de la Non conformité NCF-2024-…

Effacer les champs FICHE DE NC et de SAISIE NCF ( SAUF le champs date dans SAISIE NCF car c’est la date (AUJOURD’HUI))

Enregistrer le Fichier

J’espère t’avoir donné suffisamment d’informations , sinon n’hésites pas à revenir vers moi pour d’autres questions

Merci encore FFO


Aprés avoir modifié , il me remet l’erreur 1004 mais plus loin dans le code , lorsque que je lance la macro en étant sur un autre onglet

J’avais déjà constaté ce blocage et rajouté juste avant cette ligne de code :

Sheets(« STOCK NCF »).Activate

et j’ai modifié le commentaire les concernant comme ceci :

'activation de l’onglet STOCK NCF et de sa cellule H12

Essaies et dis moi

C’est parfait j’ai bien compris
Je te proposerai demain un traitement de ma propre conception pour obtenir ces résultats
On le comparera en terme de nombre de lignes d’instruction avec celui actuel
En attendant bonne soirée

Bonjour

Ci-joint ton fichier avec un traitement "SAISIE_NCF " de ma conception
50 lignes de code le composent contre 172 lignes pour ta version
Je l’ai testé sans vérifier les résultats obtenus simplement d’en apprécier son bon fonctionnement (aucun blocage) et émission du fichier pdf dans son répertoire

Je te laisse le soin d’apprécier la qualité des résultats que l’on obtient par son traitement

Fais moi un retour

Non-Conformité - Copie2.xlsm (417,9 Ko)

@FFO, je suppose que c’était la macro « Sub ACTUALISATION_STOCK() »,
il y a encore des choses qu’on peut simplifier

  • on peut utiliser des variables pour vos feuilles, cela s’écrit plus vite
  • avec « With … End With » if ne faut pas répéter chaque fois l’objet
  • un For … Next est, à mon opinion plus facile qu’un « Do…Loop »
  • si vous écrivez vers une plage contigue, alors cela est possible en une ligne
    Non-Conformité - Copie2.xlsm (423,3 Ko)

Bonjour Cow
Et non c’est la macro "SAISIE_NCF " pas « ACTUALISATION_STOCK »

je l’ai vite vérifié, cet après-midi peut-être mieux, mais comme vous faites une dizaine de fois la même chose, vous pouvez utiliser une fonction personnalisée.
Non-Conformité - Copie2.xlsm (423,7 Ko)

Bonjour FFO
Effectivement c’est une réduction significative de lignes de code :flushed:
Je n’ai pas pris le temps pour l’instant d’analyser le code car j’avais du bricolage à faire ce matin :sweat_smile:

Néanmoins j’ai tester ton Fichier excel et je détecte 3 erreurs

1ère : Il ne me met pas le numéro de la non conformité comme titre du PDF mais un YYYYYY… dont je ne sais pas d’où il viens

image

Au lieu de ça

2éme
il me met la date de la Non conformité ( aujourd’hui ) dans la mauvaise colonne , date de la réponse fournisseur ( colonne K au lieu de date de la non conformité colonne J )

Et 3ème , là c’est peut etre moi qui me suis mal exprimer le pdf sorti doit etre celui de " FICHE DE NC " genre comme ça

Et là le PDF me sort ça

Mes explications étaient surement approximatives mais sinon le reste à l’air de fonctionner nickel

ceci est un update pour FFO
Non-Conformité - Copie2.xlsm (428,9 Ko)

Bonjour Cow18

J’ai vu que ton code est différent de celui de FFO , l’approche n’est pas la même , mais me génère les mêmes problèmes qu’avec le code de FFO , voir mon message prècédent.

PS: je suis novice , trés loin de votre niveau à tout les 2

@Tom59300Tom, j’ai juste pris la macro de FFO, si elle ne fonctionne pas, la même aura les mêmes défauts. Ceci est réaction 80 dans cette question, je n’ai pas suivi dès le début, donc je ne sais pas à quoi la macro sert, je préfère que FFO continue, mais je lui ai donné quelque avis.