Problème Excel2007

Bonjour à tous

Je rencontre un problème sur l'onglet "Développeur"

J'ai de nombreuses macros en service,et pour commander beaucoup d'entre elles, je créais des boutons de commande,dans l'onglet précité,avec "insérer des contrôles et activer la création",et je notais le nom de la macro dans la cellule du bouton.Depuis hier,mauvaise surprise : Toutes les cellules en question sont vides,plus de bouton ni de nom.
Je retourne sur "développeur",et,plus moyen d'utiliser l'onglet "insertion des contrôles"il ne répond plus aux clics (son onglet est terne ,comme si un brouillard le recouvrait)?
Comme je suis loin d'être un aigle en informatique,je fais appel aux compétences des habitués du forum.
Merci à ceux qui me répondront
michel70

12 réponses

  1. je créais des boutons de commande,dans l'onglet précité
    Pas dans l'onglet mais sur la feuille excel ?

    Je retourne sur "développeur",et,plus moyen d'utiliser l'onglet "insertion des contrôles"il ne répond plus aux clics (son onglet est terne ,comme si un brouillard le recouvrait)
    Le classeur est-il ouvert ?
    0
    1. Bonjour Patrice33740

      1 ) D'accord,je créais des boutons dans la feuille excel,à l'aide de l'onglet précité
      2 ) oui,le classeur est ouvert

      A plus

      michel70
      0
      1. Le classeur ou la feuille est peut-être protégé (Révision / Oter la protection)
        0
        1. Bonsoir Patrice33740

          Non,ni la feuille ni le classeur ne sont protégés

          C'est le deuxième jour que j'essaie de remettre le truc en route,sans succès,et je ne vois toujours pas où est le problème.Ce n'est pas surprenant,compte de mon très faible niveau en informatique,,j'espérais que des gens plus compétents pourraient m'aider ,mais,apparemment,,soit la question ne les intéresse pas,ou ils ne savent pas ,eux non plus,d'où vient ce bug.
          Je vais encore essayer,si je n'y arrive pas,je ferai appel à un technicien dépanneur,mais compte tenu des tarifs pratiqués,bonjour la facture !

          Je te remercie de t'être penché sur le pbm,et te dis : peut-être à plus.

          michel70
          0
          1. Est-ce qu'avec un classeur vierge (nouveau), la commande Insertion des contrôles est activée ?
            0
            1. Contributeur
              Bonjour,

              personnellement je penserais à un classeur avec macro créé avec Office 2007 mais enregistré sous le format de compatibilité 97-2003, ou alors en xlsx à la place de xlsm.

              Cordialement.
              0
              1. Bonjour chossette9

                Lorsqu'on enregistre au format 97-2003, les macros et les boutons sont conservés.
                Lorsqu'on enregistre au format xlsx, seul le projet VBA disparait (les macros), par contre les boutons ne disparaissent pas.
                0
              2. Contributeur
                Bonjour https://www.commentcamarche.net/communaute/profil-Patrice33740, comment va ?
                0
              3. Re,

                Ça va bien, merci.
                Mais je comprend pas bien le contexte de ce problème, le travail as-t-il été enregistré ?
                Sous quel format ?
                Les macros existent-elles encore ? Où ?

                Patrice
                0
              4. Contributeur
                J'ai proposé ça car c'était ce qui me semblait le plus simple. Je sais qu'entre un fichier Word enregistré en mode de compatibilité et un autre enregistré en 2007, dans le premier je ne pourrais pas utiliser l'éditeur d'équations, dans le second je pourrais.

                Je suis parti de cette déduction, mais apparemment je me suis craqué.

                Désolé pour la mauvaise analyse.
                0
            2. Bonjour Patrice33740, et bonjour chossettes9

              Absent cet après midi,je découvre vos posts

              Je vérifierai demain si les macros fonctionnent dans un nouveau classeur.
              Merci à tous deux et à plus.
              michel70
              0
              1. Bonjour à tous
                Patrice33740
                Effectivement,sur un nouveau classeur,tout fonctionne normalement.
                Qu'est il arrivé à mon classeur ? Un virus ?
                A plus
                michel70
                0
                1. Il est très nettement plus probable que ce soit une mauvaise manip ou un incident lors de l'enregistrement plutôt qu'un virus

                  Selon l'état et la contenance de ton fichier, tu peux essayer de tout recopier dans un nouveau fichier, y compris les macros si elles existent encore.
                  Ne copie pas les feuilles (via l'onglet) mais toutes les cellules, attention au formules qui pourraient générer des liaisons avec l'ancien fichier
                  0
                  1. Bonsoir Patrice33740

                    J'ai recopié l'ensemble du classeur dans un nouveau classeur vierge.
                    La commande "insertion de contrôles" fonctionne
                    J'ai enregistré les macros dans l'onglet VBA du nouveau classeur,car elles ne l'ont pas été lors de la copie.Maintenant depuis deux jours je reprends mes formules une à une,ce qui me prend beaucoup de temps.
                    J'ai bon espoir,mais je ne sais pas si je suis sorti de l'auberge,car je constate que certaines macros,bien enregistrées dans le classeur,ne fonctionnent pas.Je reprends
                    la mise en place des boutons de commande,un à un.
                    Enfin,j'espère arriver à un résultat positif.
                    Je te tiendrai au courant.
                    A plus
                    michel70
                    0
                    1. Bonjour,

                      Cette macro, à mettre dans un nouveau fichier, permet de régénérer les principaux éléments d'un classeur partiellement corrompu (sauf les macros) dans un nouveau classeur. Elle copie notamment les styles, les formats, les formules, les noms, les formes, les commentaires

                      Private Sub RégénérerCLasseur()
                      Dim wbkOrg As Workbook
                      Dim wbkDst As Workbook
                      Dim wshOrg As Worksheet
                      Dim wshDst As Worksheet
                      Dim stlOrg As Style
                      Dim stlDst As Style
                      Dim cmtDst As Comment
                      Dim shpDst As Shape
                      Dim Nom As Name
                      Dim Nomfichier As String
                      
                        'Sélection du fichier
                        On Error Resume Next
                        Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = False
                        Application.FileDialog(msoFileDialogFilePicker).Show
                        Nomfichier = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
                        If Nomfichier = "" Then Exit Sub
                        On Error GoTo 0
                        Set wbkOrg = Workbooks.Open(Nomfichier)
                        Set wbkDst = Workbooks.Add(xlWBATWorksheet)
                        'Fusionner les styles
                        Application.DisplayAlerts = False           'pour éviter le messages concernant les styles de même nom
                        wbkDst.Styles.Merge Workbook:=wbkOrg
                        Application.DisplayAlerts = True
                        'créer les feuilles
                        For Each wshOrg In wbkOrg.Worksheets
                          Set wshDst = wbkDst.Worksheets(wshOrg.Index)
                          wshDst.Name = wshOrg.Name
                          wshDst.Tab.ColorIndex = wshOrg.Tab.ColorIndex
                          'copier les principales options d'affichage(quadrillage, onglets, ...)
                          wshDst.Activate
                          wshOrg.Activate
                          Windows(wbkDst.Name).Zoom = Windows(wbkOrg.Name).Zoom
                          Windows(wbkDst.Name).DisplayGridlines = Windows(wbkOrg.Name).DisplayGridlines
                          Windows(wbkDst.Name).DisplayHeadings = Windows(wbkOrg.Name).DisplayHeadings
                          Windows(wbkDst.Name).DisplayWorkbookTabs = Windows(wbkOrg.Name).DisplayWorkbookTabs
                          Windows(wbkDst.Name).DisplayHorizontalScrollBar = Windows(wbkOrg.Name).DisplayHorizontalScrollBar
                          Windows(wbkDst.Name).DisplayVerticalScrollBar = Windows(wbkOrg.Name).DisplayVerticalScrollBar
                          Windows(wbkDst.Name).DisplayZeros = Windows(wbkOrg.Name).DisplayZeros
                          'feuille suivante
                          If wbkOrg.Worksheets.Count > wbkDst.Worksheets.Count Then wbkDst.Worksheets.Add After:=wshDst
                        Next wshOrg
                        'copier les noms
                        For Each Nom In wbkOrg.Names
                          If InStr(1, Nom.RefersTo, "#REF") = 0 Then wbkDst.Names.Add Nom.Name, Nom.RefersTo
                        Next Nom
                        'copier le contenu de chaque feuille
                        For Each wshOrg In wbkOrg.Worksheets
                          Set wshDst = wbkDst.Worksheets(wshOrg.Name)
                          'copier toutes les cellules
                          Application.DisplayAlerts = False           'pour éviter les messages concernant la copie des noms
                          wshOrg.Cells.Copy Destination:=wshDst.Cells
                          Application.DisplayAlerts = True
                          'Copier les formules (supprime les éventuelles liaisons crées avec l'ancien classeur)
                          wshDst.UsedRange.Formula = wshOrg.UsedRange.Formula
                          'repositionner les commentaires
                          For Each cmtDst In wshDst.Comments
                            cmtDst.Shape.Top = wshOrg.Range(cmtDst.Parent.Address).Comment.Shape.Top
                            cmtDst.Shape.Left = wshOrg.Range(cmtDst.Parent.Address).Comment.Shape.Left
                          Next cmtDst
                          'repositionner les objets
                          For Each shpDst In wshDst.Shapes
                            If shpDst.Type <> msoComment Then
                              shpDst.LockAspectRatio = msoFalse
                              shpDst.Height = wshOrg.Shapes(shpDst.Name).Height
                              shpDst.Width = wshOrg.Shapes(shpDst.Name).Width
                              shpDst.Top = wshOrg.Shapes(shpDst.Name).Top
                              shpDst.Left = wshOrg.Shapes(shpDst.Name).Left
                              shpDst.LockAspectRatio = wshOrg.Shapes(shpDst.Name).LockAspectRatio
                            End If
                          Next shpDst
                        Next wshOrg
                        wbkOrg.Saved = True
                        wbkDst.Worksheets(1).Activate
                        
                      End Sub

                      0
                    2. Bonjour Patrice33740

                      Excuse mon silence dù à des ennuis de santé,et un petit séjour en clinique.
                      Je découvre ton envoi du 31/8.
                      Je vais donc essayer et voir.
                      Comme,à mon grand regret,je ne dois pas m'éterniser devant mon écran,je te dirai ce qu 'il en est dans quelques jours.
                      Très sincèrement,MERCI
                      A plus
                      michel70
                      0
                      1. Bon rétablissement
                        A+
                        Patrice
                        0