Problème fichier avec macro "problème d'exécution 1004"

Bonjour à tous! Je me permets de créer ce sujet car malgré mes recherches je n'ai pas trouvé de réponses claires concernant mon problème. Je m'explique :

Pour mon entreprise, j'ai dû mettre en place un tableau de bord représentant des résultats de productivité et de qualité par salarié. Le fichier que j'ai créé possède une macro permettant de calculer automatiquement les résultats de chacun et de mettre à jour des graphiques de tendance pour suivre l'évolution de nos collaborateurs.

Chose importante, j'ai créé cette macro grâce à l'enregistrement automatique et non en codant moi-même l'ensemble des opérations (je ne suis malheureusement pas encore assez bon sur Excel pour écrire des lignes de code).

Quand je créé ma macro, tout se passe bien mais quand je la lance un message d'erreur apparaît et me parle du "problème d'exécution 1004". Après réflexion, je pense avoir cerné le problème. En effet, à un moment dans le déroulement des actions je demande à la macro de filtrer une base de données pour ne faire apparaître que les lignes de cellules vides pour pouvoir ensuite coller une nouvelle base de données dans ces cellules vides et ainsi compléter ma première base de données. Il me semble que c'est à ce moment que la macro beugue.

Y aurait-il une façon de contourner ce problème tout en me permettant d'obtenir ce que je recherche ?

Comme je ne peux pas vous partager le fichier réel de mon entreprise qui contient ce problème (pour cause de confidentialité), j'ai recréé un fichier "exemple" reprenant le même problème et dans lequel vous pouvez, si vous êtes cool =), m'apporter des solutions.

Dans ce fichier "exemple", la macro est déjà créée et s'appelle "MAJGRAPH". Si vous la lancez, vous verrez le fameux message d'erreur 1004 qui commence gentiment à me sortir par les yeux ^^

J'espère avoir été assez clair et je vous remercie par avance pour le temps que vous m'accorderez =)

bonjour,

ton fichier ne contient pas de macro (.xlsx). sauve-le avec ses macros (.xlsm)

Bonjour,

Pas de macro jointe car fichier .xlsx et non .xlsm

Au vu de la description de votre problème, il est probable que vous utilisez la propriété .SpecialCells(xlCellTypeBlanks). Cette propriété renvoie l'erreur 1004 s'il n'existe pas de cellules vides dans la plage à laquelle elle s'applique.

Ah désolé j'étais persuadé d'avoir enregistré le fichier en xlsm ^^

Voilà la bonne version du fichier, et encore désolé.

Bonjour,

Je ne pense pas que l'enregistreur de macros convienne à votre problème car votre macro générée est liée une situation particulière de mise à jour / filtrage de votre base de données qui n'est pas forcément reproductible, d'où l'erreur obtenue.

Il serait mieux que vous décriviez le résultat à obtenir en fournissant la situation avant et après mise à jour pour que l'on puisse vous fournir la macro adéquate.

Ok thev, merci pour votre retour. Du coup, j'ai retravaillé le réel fichier Excel de mon entreprise pour pouvoir vous le transmettre et que les choses soient plus claires.

Je vais essayer de vous expliquer pas à pas les actions que je souhaite faire avec la macro :

1 : Les premiers onglets (surlignés en orange) sont les onglets d'insertion des données. Quand on les insère, le tableau de l'onglet "tableau de bord" se met à jour automatiquement pour les colonnes "Lignes prep", "Lignes ctrl" et "Total lignes effectuées".

2 : Avant de lancer la macro, il faut renseigner en cellule R1 le jour de l'analyse (la colonne "Jour" du tableau se mettra alors à jour automatiquement).

3 : LANCEMENT DE LA MACRO. Les deux premières étapes se trouvent dans l'onglet "Heures prod". Il faut dans un premier temps mettre à jour les TCD présents à droite de la base de données. Ensuite, Il faut filtrer les données à la colonne H "Libellé secteur" pour ne garder que les libellés "Préparation" et "Contrôle et emballage". Une fois fait, il faut copier les noms de la colonne E "Libellé personnel" et les coller dans le tableau de l'onglet "Tableau de bord", à la colonne C "Personnel". Une fois collés, il faut les trier de A à Z et supprimer les doublons.

Ensuite, il faut copier l'ensemble du tableau présent dans l'onglet "Tableau de bord", se mettre à l'onglet "Archives graph jour" et coller les nouvelles données tout en gardant celles des précédentes analyses. Après cela, il ne reste plus qu'à mettre à jour le graphique de l'onglet "Graph des résultats jour" et d'arrêter la macro.

J'espère avoir était assez clair et j'espère vraiment que vous saurez m'apporter des solutions...vous êtes mon dernier espoir

On pourra certainement vous apporter des solutions mais pour le moment votre dernier envoi est protégé par un mot de passe.

Haha, j'ai l'impression d'enchaîner les bourdes, excusez-moi ^^

Le mot de passe est "bad"

Bonsoir,

ci-jointe proposition

Salut thev, et merci pour votre proposition. C'est vraiment sympa de prendre du temps pour mon problème. Par contre, si la macro que vous avez codé sur mon fichier s'appelle "maj-graphe"; elle ne passe malheureusement pas. Quand je la lance, ce message d'erreur (ci-joint) apparaît. La fameuse erreur d'exécution 1004 a encore frappé =/

capture erreur pour macro maj graphe

Bonjour,

Cette erreur peut se produire si votre feuille est protégée.

Essayer à tout hasard cette nouvelle version

Avec cette nouvelle version, le même message d'erreur s'affiche =/

Merci quand même pour votre temps et vos propositions thev. Je vais essayer de réfléchir à comment contourner ce probème autrement

Merci encore et bonne journée

En tout cas chez moi, ça fonctionne sans problème.

Ah ok, donc c'est peut-être moi qui manipule mal le fichier. Je vais retenter un coup

Bonjour à tous! Je reviens vers vous concernant le problème que j'avais avec mon fichier hier. Thev, j'ai re-testé plusieurs fois le fichier que tu m'as envoyé et la macro ne veut vraiment pas passer...malheureusement je ne suis pas assez calé sur Excel pour savoir si j'exécute le fichier correctement ou si je fais une erreur quelque part.

Bref, j'ai voulu contourner le problème autrement, et c'est pourquoi je vous écris aujourd'hui.

J'aimerais savoir s'il existe un moyen, avec une formule ou une macro, de copier-coller des données d'une base de données répondant à un ou plusieurs critères et surtout q'une fois collées ces données ne s'effacent pas même si je supprime la base de données... (Ultra pas clair comme explication n'est-ce pas?^^)

Exemple :

FEUILLE1 /

A1 : Lundi B1 : Paul C1 : 7H

A2 : Lundi B2 : Jean C2 : 9H

A3 : Lundi B3 : Ingrid C3 : 7H

FEUILLE 2/

A1 : - B1 : Lundi C1 : Mardi D1 : Mercredi

A2 : - B2 : Nb heures C2 : Nb heures D2 : Nb heures

A3 : Paul B3 : 7 C3 : D3 :

A4 : René B4 : 0 C4 : D4 :

A5 : Jean B5 : 9 C5 : D5 :

A6 : Cécile B6 : 0 C6 : D6 :

A7 : Ingrid B7 : 7 C7 : D7 :

1) En FEUILLE 2, je copie-colle les infos de la colonne C de la FEUILLE 1 en fonction du jour et des noms.

2) Une fois fait, j'aimerais que si je supprime ou remplace les infos de la FEUILLE 1, les données collées dans la FEUILLE 2 ne s'effacent pas.

J'espère avoir été assez clair sur ma demande, et je m'excuse de vous déranger une nouvelle fois.

Merci par avance pour vos réponses

Bonsoir,

J'ai apporté une modif au fichier précédent et la macro peut se lancer directement à partir du bouton "Mise à jour Graphe" présent dans la feuille "Tableau Bord".

Il se pourrait que ça fonctionne maintenant chez vous.

Thev, je m'excuse de vous répondre aussi tardivement (je n'avais pas vu que vous m'aviez laissé un dernier message) mais en tout cas la nouvelle macro que vous m'avez envoyé fonctionne PARFAITEMENT! C'est exactement ce que je voulais, je vous remercie sincèrement d'avoir pris le temps pour m'aider à résoudre mon problème

Bonne journée à vous et merci encore!

Bonsoir

Voici la proposition

Au lieu de filtrer egale vide , on identifie la derniere ligne remplie et on fait +1.

Cest mieux pour coller

J'ai adapté la méthode de coller

Ca marche chez moi

A adapter comme j ai fais sur les autres ce serait mieux

Sub MAJGRAPH()
'
' MAJGRAPH Macro
'

'
    Sheets("Nouvelles données").Select
    Range("A2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Tableau de bord").Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("A2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Archives pour graphique").Select
  

Derniere_ligne_renseignee = Range("A" & Rows.Count).End(xlUp).Row

Ligne_a_commencer = Derniere_ligne_renseignee + 1

ActiveSheet.Range("A" & Ligne_a_commencer).Select

With Selection

.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

    End With
    ActiveSheet.Range("$A$1:$F$13").AutoFilter Field:=1
    Sheets("Graphique de tendance").Select
    ActiveSheet.ChartObjects("Graphique 1").Activate
    Application.CutCopyMode = False
    ActiveChart.PivotLayout.PivotTable.PivotCache.Refresh
    ActiveSheet.ChartObjects("Graphique 1").Activate
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Jour")
        .PivotItems("(blank)").Visible = True
        .PivotItems("Mardi").Visible = True
    End With
    Range("M12").Select
End Sub

cdt,

Rechercher des sujets similaires à "probleme fichier macro execution 1004"