IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Suppression ZoneTexte macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression ZoneTexte macro
    Bonjour le forum,

    J'ai une macro, qui fonctionne bien. Elle a pour but de copier coller une feuille d'un fichier excel vers un 2 nd fichier excel en créant un onglet.
    Sur la 1ière feuille j'ai deux ZoneTexte qui déclenchent 2 macros différentes.
    Ces macros sont utilisées sur la feuille du 1ier fichier. Et bien sur lorsque cette feuille est copiée dans le 2iéme fichier ces 2 TexteZone apparaissent, alors qu'elles ne servent à rien dans ce fichier.
    Comment faire pour qu'aprés la copie ces deux ZoneTexte n'apparaissent plus?
    Ci-dessous les lignes de ma macro enregistrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     ' Macro utilisée pour enregistrer l'analyse de risque dans le fichier HISTO.xls
    Sub EnrHisto()
    nom_du_fichier_initial = ActiveWorkbook.Name
    'Supprime les caractères .XLS
    nom_du_fichier = Left(nom_du_fichier_initial, _
                                Len(nom_du_fichier_initial) - 4)
    nom_du_fichier = UCase(nom_du_fichier)
     
    '----------------
    If Right(nom_du_fichier, 5) = "HISTO" Then
        nom_du_fichier = Left(nom_du_fichier, _
                                Len(nom_du_fichier) - 6)
        nom_du_fichier = nom_du_fichier + ".xls"
        position_onglet = 2
        ' Supprime les boutons
     
    Else
        nom_du_fichier = nom_du_fichier + " HISTO.xls"
        position_onglet = 1
     
    End If
    nom_fiche_active = ActiveSheet.Name
     
    If nom_fiche_active <> "Fiche prépa" Then
        Msg = "VOUS N'ETES PAS SUR VOTRE ANALYSE DE RISQUE!!"
        Title = "Attention ERREUR!!!!!"   ' Définit les titres.
        ' Affiche le message.
        Réponse = MsgBox(Msg, Style, Title)
    Else
        Réponse = 7
    End If
     
    On Error GoTo Affichage_message_erreur
     
    Select Case Réponse
    Case 7
        Sheets(nom_fiche_active).Copy Before:=Workbooks( _
            nom_du_fichier).Sheets(position_onglet)
     
    Case 6
        nombre_de_feuille = Sheets.Count
        If nombre_de_feuille > 1 Then
            Sheets(nom_fiche_active).Move Before:=Workbooks( _
                nom_du_fichier).Sheets(position_onglet)
        Else
            Msg = "Il n'est pas possible de déplacer une feuille seule" & Chr(13) & _
                    "Pour la transférer, choisissez : COPIER"
            Style = vbOK + vbExclamation  ' Définit les boutons.
            Title = "Erreur mineure"   ' Définit les titres.
            ' Affiche le message.
            Réponse = MsgBox(Msg, Style, Title)
        End If
    Case Else
        Windows(nom_du_fichier_initial).Activate
        On Error GoTo 0
        Exit Sub
    End Select
     
    On Error GoTo 0
     
    If nom_fiche_active = "Fiche prépa" Then
        'Affiche message : nom de la feuille
        Msg = "Vous enregistrez votre analyse de risque dans le fichier HISTO. Veuillez lui donner un nom!!!"
        Title = "Copie de l'analyse de risque dans un autre fichier"   ' Définit les titres.
        Réponse = InputBox(Msg, Title)
        If Réponse = "" Then
            Windows(nom_du_fichier_initial).Activate
            Exit Sub
        End If
        Sheets(position_onglet).Name = Réponse
    End If
     
    Windows(nom_du_fichier_initial).Activate
    Exit Sub
     
    Affichage_message_erreur:
        Msg = "Le fichier de copie n'a pas été trouvé."
        Style = vbOKOnly + vbExclamation  ' Définit les boutons.
        Title = "Erreur pénalisante"   ' Définit les titres.
        ' Affiche le message.
        Réponse = MsgBox(Msg, Style, Title)
        Exit Sub
    Resume
     
    End Sub

    D'avance merci pour votre aide

    Cordialement

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Par défaut Effacer TextBox d'une feuille Excel copiée en VBA
    Dans Excel, cliquez sur l'onglet de la feuille copiée dans un classeur d'archive pour la rendre active et visible.
    Ouvrir le VBE par (Alt+F11).

    Citation Envoyé par CLAUDE19 Voir le message
    Comment faire pour qu'aprés la copie ces deux ZoneTexte n'apparaissent plus?
    Il s'agit d'identier le type des deux ZoneTexte : Shapes ou OLEObjects ?

    Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE d'Excel, copier-coller et valider par ENTER :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each txtbox in ActiveSheet.Shapes: ? txtbox.Name: Next
    Text Box 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each txtbox in ActiveSheet.OLEObjects: ? txtbox.Name: Next
    ...
    Une fois que vous aurez retrouvé le nom de vos deux ZoneTexte soit dans Shapes soit dans OLEObjects, il ne restera plus qu'à les effacer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Text Box 1").Delete
    On a effacé la Shape de nom "Text Box 1".

    Vous en déduirez la macro d'effacement de vos deux ZoneTexte en remplaçant ActiveSheet par le nom de la feuille copiée dans le classeur d'archive.

    Une autre façon de faire si vos deux ZoneTexte ne sont ni dans Shapes ni dans OLEObjects est d'analyser le code généré par l'enregistreur de macro quand vous effacez manuellement à la souris les deux ZoneTexte de la feuille copiée.

    Notez que les deux macros qui gérent les deux ZoneTexte seront toujours présentes dans le classeur copié et ne pourront plus fonctionner si on efface leurs ZoneTexte.
    ___________

    En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression ZoneTexte macro
    Bonjour

    Et merci pour votre réponse.
    Pour la suppression de la feuille copiée, comment je peux faire pour l'identifier car elle sera nommée par chaque utilisateur au moment de l'enregistrement de la feuille dans le fichier archive?

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 94
    Par défaut Suppression ZoneTexte macro
    J'ai trouvé, il suffisait de rentrer les lignes ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' Ligne qui nomme l'onglet de la nouvelle feuille dans le fichier HISTO
    Sheets(position-onglet).Name=Réponse
    ' Lignes qui supprime les boutons de macro
    Sheets(position-onglet).Shapes("ZoneTexte 10").Delete
    Sheets(position-onglet).Shapes("ZoneTexte 11").Delete
    End if
    Et encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] suppression des macros le message activer macro apparait encore
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/11/2009, 11h33
  2. [XL-2003] suppression de macros par macro
    Par neninio31 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/06/2009, 14h29
  3. Suppression de macro-variables globales impossible
    Par raf64flo dans le forum Macro
    Réponses: 12
    Dernier message: 18/04/2008, 13h33
  4. Suppression de macro-variables globales
    Par raf64flo dans le forum Macro
    Réponses: 2
    Dernier message: 09/04/2008, 15h25
  5. Suppression de macros en vbs
    Par leon357 dans le forum VBScript
    Réponses: 1
    Dernier message: 16/04/2007, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo