Problème sur une propriété DrawingObjects

Bonjour, j'ai un souci. Je souhaite créer une macro pour enregistrer l'Excel en PDF afin de vider toutes les cellules pour pouvoir les réécrire par la suite. Cependant, vient le problème : j'ai eu l'occasion d'en faire plusieurs des macros, mais là, je ne comprends pas le problème ici, toute les zones de textes existe. Toutes les cellules que je souhaite vider se mettent en erreur.

2626 2525

Message de l'erreur : Erreur d'exécution '1004':
Impossible de lire la propriété DrawingObjects de la classe Worksheet

Voici mon code si besoin :

Sub controlequalite()
' Desactivation de la protection de la feuille pour executer le vba
ActiveSheet.Unprotect "test"

' Create and assign variables
Dim saveLocation As String
Dim XBox As CheckBox

' récupération des infos pour créer le gravage
A1 = ActiveSheet.Shapes("ZoneTexte 27").TextFrame.Characters.Text
A2 = ActiveSheet.Shapes("ZoneTexte 8").TextFrame.Characters.Text
A3 = ActiveSheet.Shapes("ZoneTexte 7").TextFrame.Characters.Text

' Suppression des sauts de lignes, espaces et tabulations
NAA1 = Replace(A1, Chr(9), "")
NA1 = Replace(NAA1, Chr(10), "")
NA1 = Replace(NA1, Chr(13), "")
NAA2 = Replace(A2, Chr(9), "")
NA2 = Replace(NAA2, Chr(10), "")
NA2 = Replace(NA2, Chr(13), "")
NAA3 = Replace(A3, Chr(9), "")
NA3 = Replace(NAA3, Chr(10), "")
NA3 = Replace(NA3, Chr(13), "")

' Chemin de sauvegarde des checklist format pdf
saveLocation = "C:\Numérisation des excels\Controle leslie\" & Trim(UCase(NA1)) & Trim(UCase(NA2)) & Trim(UCase(NA3)) & "_Contrôle Leslie" & ".pdf"

' Exporter les deux feuilles actives en PDF
ThisWorkbook.Sheets(Array("BIOROCK-BIOROTOR", "ROTOMADE")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=saveLocation, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

'vidage des cellules remplies pour la prochaine saisie
Range("B6").MergeArea.ClearContents
Range("B7").MergeArea.ClearContents
Range("B8").MergeArea.ClearContents
Range("B9").MergeArea.ClearContents
Range("B10").MergeArea.ClearContents
Range("B11").MergeArea.ClearContents
Range("B12").MergeArea.ClearContents
Range("B13").MergeArea.ClearContents
Range("B14").MergeArea.ClearContents
Range("B15").MergeArea.ClearContents
Range("B16").MergeArea.ClearContents
Range("B17").MergeArea.ClearContents
Range("B18").MergeArea.ClearContents
Range("B19").MergeArea.ClearContents
Range("B20").MergeArea.ClearContents

'Vidage des zones de textes

ActiveSheet.DrawingObjects("ZoneTexte 27").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 7").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 8").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 9").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 10").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 11").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 12").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 13").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 14").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 15").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 16").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 17").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 18").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 19").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 20").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 21").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 22").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 23").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 24").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 34").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 35").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 36").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 37").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 39").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 40").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 41").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 46").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 47").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 48").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 49").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 50").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 51").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 52").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 53").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 54").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 55").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 56").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 57").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 58").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 59").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 60").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 96").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 97").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 98").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 99").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 100").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 101").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 102").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 103").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 104").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 105").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 106").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 107").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 108").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 109").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 110").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 135").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 136").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 137").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 138").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 139").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 140").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 141").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 142").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2138").Text = "" <--- Voici ou se situe l'erreur
ActiveSheet.DrawingObjects("ZoneTexte 2113").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2114").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2115").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2116").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2087").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2088").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2089").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2090").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2091").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2092").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2093").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2094").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2095").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2096").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2097").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2099").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2117").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2124").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2125").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2126").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2127").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2128").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2129").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2130").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2131").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2132").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2133").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2134").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2135").Text = ""
ActiveSheet.DrawingObjects("ZoneTexte 2137").Text = ""

' Vidage des checkbox
For Each XBox In ActiveSheet.CheckBoxes
XBox.Value = False
Next
'Suppresion de l'image signature. En cas d'erreur c'est que le code signature n'était pas mis alors on continue
On Error Resume Next
Pic.Delete
' Confirmation après l'enregistrement
MsgBox "Fichier enregistré avec succès sous le nom : " & vbCrLf & saveLocation, vbInformation, "Enregistrement réussi"

' Réactivation de la protection de la feuille
ActiveSheet.Protect "test", True, True, True

End Sub

Merci à toutes les personnes qui prendront le temps de regarder mon problème.

Bonjour et beinvenue

Lorsque vous postez un code pensez à utiliser les balises de code en cliquant sur l'icone </> dans la barre de menu. J'ai corrigé dans votre post


Pour votre question sans voir le fichier ....ou au moins une vue
Quelques pistes :

1. Votre fichier PDF

' Exporter les deux feuilles actives en PDF
ThisWorkbook.Sheets(Array("BIOROCK-BIOROTOR", "ROTOMADE")).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=saveLocation, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

2. Je ne comprends pas trop l'utilité des A1, A2 et A3 ?? Vous ne les utilisez pas plus bas dans le code. Idem pour certains NAA
3. Plus bas quel est l'utilité des instructions MergeArea ? exemple B6 est fusionnée avec quelles cellules ?
4. Pour votre ligne où se situe l'erreur, si vous la désactivez, est-ce que la ligne suivante bugue aussi ?

Cordialement

Bonsoir,

On peut aussi penser que la

("ZoneTexte 2138")

n'existe pas ou est nommée un peu différemment (avec un espace de fin p.e.)

A+

Bonjour Dan et Galopin01,

Merci pour le temps passé à m'aider à résoudre le problème. Alors voici mon fichier avec la macro.

Question de Dan:

  1. Votre fichier PDF
    Je ne pense pas avoir fait d'erreurs dans cette partie, car sur les autres fichiers Excel, cela fonctionnait très bien.
  2. Je ne comprends pas trop l'utilité des A1, A2 et A3. Vous ne les utilisez pas plus bas dans le code. Idem pour certains NAA.
    A1, A2 et A3 sont utilisés pour récupérer les données afin de les mettre dans le titre du fichier lorsqu'il est enregistré.
  3. Plus bas, quelle est l'utilité des instructions MergeArea? Par exemple, B6 est fusionnée avec quelles cellules?
    L'utilité de MergeArea est là pour enlever ce que j'ai pu mettre dans ces cellules, donc toute les cellule de B6-B20 et de F5-F17 sont remise a zéro une fois cliquer sur le bouton.
  4. Pour votre ligne où se situe l'erreur, si vous la désactivez, est-ce que la ligne suivante bugue aussi?
    Oui, la suivante bug aussi dans ce cas.

Galopin01, j'ai déjà bien vérifié. Elles existent bien et sont bien écrites. Si je change leur nom, elles vont fonctionner pendant 7 minutes, après quoi elles ne vont plus marcher.

Voici le fichier je l'ai un peu modifier mais c'est toujours le même problème.

11excelpourforum.xlsm (117.68 Ko)

voici 3 photo des 3 zone qui bug

monsttreee coucouuuu sauce brazzzillll

Re

Un petit point sur l"'utilisation du forum. Lorsque vous reprenez un texte venant d'un autre post, pensez à utiliser l'icone citation (icone guillemet --> "") disponible dans la barre des menu et y coller le texte.

Votre fichier PDF
Je ne pense pas avoir fait d'erreurs dans cette partie, car sur les autres fichiers Excel, cela fonctionnait très bien.

Oui. Mais de base il faut éviter les Select avec VBA. Cela sera plus rapide. Raison pour laquelle je vous ai modifié cette ligne.

Je ne comprends pas trop l'utilité des A1, A2 et A3. Vous ne les utilisez pas plus bas dans le code. Idem pour certains NAA.
A1, A2 et A3 sont utilisés pour récupérer les données afin de les mettre dans le titre du fichier lorsqu'il est enregistré.

A analyser. A mon avis on peut éviter


Plus bas, quelle est l'utilité des instructions MergeArea? Par exemple, B6 est fusionnée avec quelles cellules?
L'utilité de MergeArea est là pour enlever ce que j'ai pu mettre dans ces cellules, donc toute les cellule de B6-B20 et de F5-F17 sont remise a zéro une fois cliquer sur le bouton.

Mergearea est instruction utilisée lorsque vous avez des cellules fusionnées
Dans votre cas, si vous voulez supprimer B6 à B20, faites comme ceci

With Activesheet
    .Range("B6:B20").clearcontents
    .Range("F5:F17").clearcontents
End with

Mais d'une manière générale, à la vue de votre fichier, je dirais "ou là là". Mais pourquoi vous mettez toutes ces textbox sur votre. C'est ingérable. Donc là je dirais de repartir avec une feuille qui ne contient plus ou un minimum de textbox. Idem pour vos cases à cocher. Les objets sur les feuilles c'est à éviter surtout si vous utilisez VBA. On peut faire plus simple.

Merci pour cette réponse je vais refaire toute ma feuille juste pouvez vous répondre a votre petit 4 parce que je pense c'est le probleme qui bloque tout merci

:

Pour votre ligne où se situe l'erreur, si vous la désactivez, est-ce que la ligne suivante bugue aussi?

Oui, la suivante bug aussi dans ce cas.

Merci pour cette réponse je vais refaire toute ma feuille juste pouvez vous répondre a votre petit 4 parce que je pense c'est le probleme qui bloque tout merci

Il faut voir sur quelle feuille vous êtes lorsque vous exécutez le code. C'est là votre souci.

Mais bon comme je vous ai écrit, à votre place je revoir la feuille en éliminant tous ces objets et de là on peut faire quelque chose de plus pratique et réduire le code
Je peux vous aider si vous voulez

Edit : Feuille B mais pourquoi mettez vous des textbox dans toutes les cellules ????

D'accord, merci beaucoup. Je ne suis pas doué en Excel, alors j'essaie de faire ce que je comprends, même si ce n'est pas simple. J'ai ajouté autant de zones de texte pour pouvoir y insérer du texte et les vider plus simplement. Mais des fois quand je relance l'Excel il y a des centaines de zone de texte qui apparaisse

Je ne suis pas doué en Excel, alors j'essaie de faire ce que je comprends, même si ce n'est pas simple.

Cà c'est pas grave. Si vous venez ici c'est que vous voulez apprendre. c'est le but d'un forum

J'ai ajouté autant de zones de texte pour pouvoir y insérer du texte et les vider plus simplement.

Là c'est faire compliqué et ce n'est pas la bonne manière de vous y prendre ... D'où ma proposition pour vous proposer quelque chose d'autre si vous êtes intéressé

En premier je dirais qu'il faudrait savoir si vous devez avoir d'autres feuilles que la A et la B

Là c'est faire compliqué et ce n'est pas la bonne manière de vous y prendre ... D'où ma proposition pour vous proposer quelque chose d'autre si vous êtes intéressé

En premier je dirais qu'il faudrait savoir si vous devez avoir d'autres feuilles que la A et la B

Alors oui j'accepte votre aide avec grand plaisir et non je n'ai pas besoin de plus de feuille.

Ok. Et vous avez un critère d'utilisation de la feuille A ou B
Est-ce que vous utilisez systématiquement les deux ou une des deux ?

Cette idée pour éventuellement faire une feuille modèle puisque si je ne me trompe elles sont identiques

non il ne sont pas identique j'utilise les 2 systématiquement

non il ne sont pas identique j'utilise les 2 systématiquement

Ok.

- Au niveau des cases à cocher, si je comprends c'est l'une ou l'autre (conforme ou non conforme) ?

Excatement !

Re,

J'ai quelques questions ou commentaires :

- la colonne A (Q/P) à quoi ?
- Il y a pas mal de choses à faire pour éviter les textbox, notamment en colonne G H et I. Il faudrait presque refaire cette partie en 6 colonnes presque. Votre avis ?
- en F22 à 24, idéalement les cases à cocher pourraient être en colonne C et D. Possible cela pour vous ?

Le but final est donc de supprimer les textbox au profit d'entrer les données directement dans les cellules. Cela remanie assez bien la feuille à ce que je vois

Edit : en attendant votre retour, j'ai modifié votre fichier --> Petite vue actuelle où les cases sont cochées par click dans la cellule mais avec VBA

image

Bonjour,

N'ayant aucun retour depuis mon dernier post, peut-être n'êtes-vous pas intéressé ou que vous avez solutionné votre problème.

Si oui, merci de cloturer le fil

Cordialement

Rechercher des sujets similaires à "probleme propriete drawingobjects"