VBA Copié/Collé

Bonjour à tous !

J’espère que vous allez bien :slight_smile:

Je me permets de vous solliciter votre aide car j’ai créé un document en prenant des conseils par ci par là , en regardant des tutos mais je bloque sur quelque chose et je pense être au bon endroit pour avoir un petit coup de pouce :slight_smile:

A chaque fois que je vais faire une mise à jour dans mon onglet « Récap fiche de sécurité », l’import se fera à la suite de ce qui existe déjà.

Pareil pour mon onglet « Pénibilité » qui copiera les nouveaux noms à la suite de ceux qui existent déjà. Par contre dans cet onglet, je souhaite remplir les colonnes B, C, D et E donc qu’il additionne a chaque fois quand je fais un import.

Je sèche…
Pouvez-vous m’aider s’il vous plait ?

En vous remerciant par avance !

Bonne journée à vous.
Copie de Suivi Fiche_Maquette.xlsm (260,5 Ko)

Bonjour

Ci-joint ma proposition

Cliques sur le bouton « Pénibilité » onglet « Récap fiche de sécurité »

Le traitement nettoient les colonne A à E de l’onglet « Pénibilité » puis les alimentes des données de l’onglet « Récap fiche de sécurité »

Testes et dis moi

La ligne « Total sur l’année » de l’onglet « Récap fiche de sécurité » est aussi prise en compte par ce traitement
On peux l’exclure si tu le souhaites
L’idéale serait de mettre cette donnée « Total sur l’année » dans une autre colonne que la colonne A

A toi de me dire

Ton fichier avec ce traitement

Copie de Suivi Fiche_Maquette.xlsm (263,5 Ko)

Bonjour FFO,

Merci beaucoup pour ton retour. C’est top !

Oui on peut exclure la donnée « Total sur l’année » :slight_smile:

Il y a deux trucs que je ne comprends pas trop :confused: :

  • Dans l’onglet « Pénibilité », la colonne D est constamment rempli avec un 1 alors qu’elle doit être rempli uniquement si c’est coché >35m.
  • Quand je clique sur Pénibilité il me sort d’autres noms qui ne sont pas sur la fiche.
  • De plus, je viens d’effacer toutes les données pour refaire et en faite il ne me rempli pas mon tableau « Récap Fiche de Sécurité » et il me met pour le coup de vrai prénom… qui ne sont même pas dans mon onglet « Feuil1 ». C’est trop bizarre ^^’

Peux me donner des exemples de ce que tu obtiens en comparaison de ce que tu souhaitais obtenir avec des explications

« Quand je clique sur Pénibilité il me sort d’autres noms qui ne sont pas sur la fiche »
lesquelles ???

" * De plus, je viens d’effacer toutes les données pour refaire et en faite il ne me rempli pas mon tableau « Récap Fiche de Sécurité » et il me met pour le coup de vrai prénom… qui ne sont même pas dans mon onglet « Feuil1 ». C’est trop bizarre ^^’"

Attention le traitement n’a pas la prétention d’inventer
Si nom il recopie c’est que nom est présent en colonne A de l’onglet « Récap fiche de sécurité » qu’il traite c’est obligatoire

« * Dans l’onglet « Pénibilité », la colonne D est constamment rempli avec un 1 alors qu’elle doit être rempli uniquement si c’est coché >35m. »

Petite coquille corrigé dans ce nouveau fichier joint

"Oui on peut exclure la donnée « Total sur l’année » "

Ne peux tu pas déplacer cette donnée en colonne B ?

Copie de Suivi Fiche_Maquette.xlsm (264,2 Ko)

Merci pour ta réponse !

J’ai mis un PDF en expliquant ce que j’ai mais c’est très étrange… Car dans mon fichier original il reprends bien les informations de l’onglet « Feuil1 » dans l’onglet « Récap… »

Concernant la donnée « Total sur l’année » en fait, j’y pense, elle n’a pas besoin d’apparaitre en A, du moment que la donnée est visible en B (donc toutes les plongées, on se doute que c’est l’année) :thinking:

En tout cas encore meric !

Présentation1.pdf (172,2 Ko)

Et tout cela c’est quoi !!!

Et de plus ce n’est qu’un échantillon

Par contre cela nécessite de démasquer les lignes

Une macro ne peux pas inventer toute seule des noms

Regardes et dis moi

A tout hasard ci-joint une version qui ne traite que les lignes non masquées

Ce n’était pas clairement spécifié dans tes conditions de traitement mais c’est peut être à prendre en compte finalement

Réessaies et dis moi
Copie de Suivi Fiche_Maquette2.xlsm (263,7 Ko)

Ouiiii effectivement il y avait des lignes masquées ! Zut ! Désolée ! :frowning: Je n’ai pas fait attention… Du coup j’ai supprimé en affichant toutes les lignes…

Par ailleurs, j’ai supprimé toutes les données afin de faire une simulation d’un cas réel et lorsque je clique sur le bouton Pénibilité, il ne me prends pas en compte ma macro pour copier les informations sur mon onglet « Récap fiche de sécurité » et dans l’onglet « Pénibilité », je n’ai plus les noms qui s’affichent… :confused:

Je suis désolée du dérangement.

Encore merci !

Par ailleurs, j’ai supprimé toutes les données afin de faire une simulation d’un cas réel et lorsque je
clique sur le bouton Pénibilité, il ne me prends pas en compte ma macro pour copier les informations sur mon onglet « Récap fiche de sécurité » et dans l’onglet « Pénibilité », je n’ai plus les noms qui s’affichent… :confused:

C’est à dire il faut m’en dire plus sur le sujet

Merci

Bonjour FFO,

Merci pour le message.

Alors dans le fichier que je vous ai envoyé, comme tu avez pu le constater, nous avons 3 onglets :

  • Feuil1 : dans cette onglet je colle mes données que j’exporte en Excel d’un outil externe. Donc généralement je le fais tous les mois pour ne pas trop alourdir la macro. Donc tous les mois, je colle les nouvelles données que j’ai de mon outil.
  • Recap fiche de sécurité : le bouton me permet de lancer la macro pour copier les informations de la Feuil1 dans les colonnes concernées.
  • Pénibilité : Qui reprends donc les informations choisies au préalable de l’onglet Récap fiche de sécurité.

Donc avec le fichier que tu m’as envoyé, j’ai effacé tout ce qui se trouvait dans l’onglet Pénibilité et Récap fiche de sécurité. J’ai laissé par ailleurs ce qui était en l’onglet Feuil1 (comme ci j’avais copier/coller les données de mon outil externe). Et lorsque j’ai appuyé sur le mon « Pénibilité », de mon onglet Récap…, le tableau n’a pas pris en compte ma macro, il reste vide et pareil l’onglet « Pénibilité » ne se rempli pas.

J’espère avoir été un peu plus clair :confused: . Dans le premier fichier que j’ai envoyé, il prends bien la macro en compte si tu effaces les données des onglet Pénibilité et Récap et que tu appuis sur le bouton.

En te remerciant par avance ! et Merci!!

Bonjour

J’ai regardé ton premier fichier que tu nous as transmis le bouton dans l’onglet « Récap fiche de sécurité » était relié à la macro test

J’ai cru que tu souhaitais un accompagnement avec cette macro pour compléter ton onglet « Pénibilité »

Au lieu de la faire évoluer dans cet esprit j’ai préféré en concevoir une autre que j’ai nommé « Pénibilité » et de raccorder ton bouton dessus
En conséquence ce bouton n’exécute que mon traitement qui enrichi seulement l’onglet « Pénibilité » sur la base des données de l’onglet « Récap fiche de sécurité » et ne réalise plus le tient « Test »

Je te transmet donc une nouvelle version avec un 2° bouton « Feuil1 » relié à ta macro « Test »

Il fonctionne parfaitement

Il y a donc au final 2 boutons

On peut éventuellement ne mettre qu’un bouton et faire tourner dessus les 2 procédures

Maintenant n’est il pas mieux de les scinder pour vérifier le résultat de l’une « Test » avant d’exécuter l’autre « Traitement »
Les dissocier à mon sens est préférable

A toi de voir et me dire

Ton fichier ainsi adapté

Testes et dis moi

Copie de Suivi Fiche_Maquette2.xlsm (265,2 Ko)

Super c’est top merci FFO ! J’ai adapté un peu le fichier.

Par contre juste pour être sûre, j’ai mis toutes cette partie ci-dessous en vert car dans ma macro il copie automatiquement dans l’onglet pénibilité (sans bouton) mais en effet je pense que le faite d’avoir deux boutons est plus sûr.

image

Alors petite question, si je veux mettre un 0 dans les cases vide ?

image

En tout cas merci beaucoup !

Merci pour ce retour

Ravi que cela te convienne

Je te joins une version qui rajoute les 0

Il faudra que tu réadaptes ta macro « Test » tel que tu l’as décris dans ta réponse

Désolé je n’ai pas en possession un fichier avec ces modifications sur cette procédure

Testes et dis moi

Copie de Suivi Fiche_Maquette2.xlsm (261,8 Ko)

Bonjour FFO,

C’est super !! Merci beaucoup pour ton aide vraiment.

Du coup j’ai adapté un peu la macro effectivement pour ne pas qu’elle prenne deux fois les noms.
Par contre la première macro « Feuil1 » (le premier bouton) est assez lente… Mais est ce que c’est peut-être parce qu’il y a pas mal de donnée ? Parce qu’il y a bien le Application.ScreenUpdating = False et Application.ScreenUpdating = True. Je ne sais pas s’il y a éventuellement d’autres astuces mais bon ce n’est qu’un détail !

Merci beaucoup !!

Bonsoir
J’ai regardé rapidement ton traitement de la Feuil1 avec la macro « Test » la lenteur de celle-ci est plutôt liée à l’approche que tu as utilisée pour son déroulement
Au lieu de traiter ligne par ligne pour l’insérer dans une nouvelle ligne onglet « Récap fiche de sécurité » avec mise à jour des données il aurait été plus judicieux de toutes les préparer avant pour une insertion globale en une seule fois ensuite
Préparation qui pouvais être réalisée dans un onglet transitoire
Certainement un sérieux gain de temps
Ce qui ralenti le déroulement c’est toutes ces insertions successives pourtant pour un nombre de lignes peu significatif (81 lignes)

C’est le conseil que je puis te donner pour un traitement plus rapide

A toi de voir

Pour étayer ma réponse fais un test sur ce fichier qui donne le même résultat pour ta macro « Test »
Il n’y a pas photo en terme de rapidité d’exécution
Reste à voir si le résultat obtenu est strictement identique
A toi de me dire

Mon traitement utilise un onglet transitoire « Préparation » pour préparer toutes les données avant de les l’injecter dans l’onglet « Récap fiche de sécurité »

Testes et dis moi

Copie de Suivi Fiche_Maquette3.xlsm (271 Ko)

Bonjour FFO,

Tout d’abord, navrée pour le temps de réponse !! J’ai du géré quelques soucis :smiley:

Merci pour ta réponse et surtout ton temps !

J’ai essayé ton fichier en l’adaptant avec certaines contraintes que je rencontre dans ma feuille.
Sauf que j’ai un problème qui apparait :


image

J’ai bien vérifié et la syntaxe est correcte… et dans le fichier que j’ai adapté mais qui es lent, je n’ai pas eu de problème… :thinking:.

Ci-joint le fichier si tu veux voir mais c’est étrange mais du coup je n’ai pas essayé ton fichier dans un cas concret mais je vois tout à fait le logique !
Copie de Suivi Fiche_Maquette3 (3).xlsm (275,1 Ko)

En te remerciant par avance et encore merci !

Bonjour

Dans le code tu as rajouté des lignes maladroitement

Avant dans cette partie j’avais ces lignes de codes :

N_Name = ws.Range(« E » & i).Value
N_Meth = ws.Range(« F » & i).Value
N_Gaz = ws.Range(« G » & i).Value
N_Prof = ws.Range(« H » & i).Value
N_Durée = ws.Range(« I » & i).Value
N_Acti = ws.Range(« J » & i).Value
N_Tps = ws.Range(« H » & i).Value

Dand le fichier que tu me transmets j’ai pour la même partie de code ces lignes :

N_Name = ws.Range(« D » & i).Value
N_Meth = ws.Range(« E » & i).Value
N_Gaz = ws.Range(« F » & i).Value
N_Prof = ws.Range(« G » & i).Value
N_Durée = ws.Range(« H » & i).Value
N_Acti = ws.Range(« L » & i).Value
N_Tps = ws.Range(« G » & i).Value
N_Effec = ws.Range(« I »).Value
N_Constr = ws.Range(« J »).Value
N_Assem = ws.Range(« K »).Value

la dernière ligne commune est celle-ci :

N_Tps = ws.Range(« G » & i).Value

les 3 autres qui suivent dans ce dernier fichier qui bug ne sont pas dans ceux que tu m’as déjà transmis :

N_Effec = ws.Range(« I »).Value
N_Constr = ws.Range(« J »).Value
N_Assem = ws.Range(« K »).Value

Je ne suis absolument pas intervenu à ce niveau

Elle ne se sont pas créées toutes seules

Si tu regardes bien ces lignes rajoutées en les comparant à celles qui existaient déjà ils leur manquent quelque chose

exemple
ligne déjà présente :

N_Tps = ws.Range(« G » & i).Value

ligne rajoutée :

N_Effec = ws.Range(« I »).Value

plus précisément :

ws.Range(« G » & i).Value
ws.Range(« I »).Value

le « & i » est manquant

ce qui provoque le bug

le & i permets d’associer à la colonne représentée par la lettre le numéro de la ligne portée par la variable i

sans elle la cellule à traiter ne peut être déterminée

Après correction bingo cela fonctionne :

Ton dernier fichier transmis corrigé ci-joint à ce niveau

Testes et dis moi

Copie de Suivi Fiche_Maquette3 (3).xlsm (307,2 Ko)

1 « J'aime »

C’est génial !!

Oui je n’ai pas fait attention aux « i » lorsque j’ai adapté…

Merci infiniment et merci aussi pour les explications ! ça évite de demander de l’aide et d’aider :slight_smile:

Encore merci et bonne fin de journée !

Qu en est il de mon adaptation du traitement « test » pour une exécution plus rapide ?
Trouves tu une amélioration ?
Merci de me faire pas de tes impressions à ce niveau