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 :

Transformer une zone en majuscule [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut Transformer une zone en majuscule
    Bonjour à tous,

    Je souhaite lancer une macro d'un fichier qui s’exécutera sur un autre ficher et qui ira sélectionner la zone à transformer en majuscule.

    J'ai ce code qui fonctionne très bien quand on le lance sur le fichier en lui même, mais si je le lance sur un autre fichier, la fenetre pour sélectionner la zone apparait bien mais je ne peux pas sélectionner.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim cel As Range
    Application.InputBox ("Sélectionner")
    For Each cel In Selection
    cel = UCase(cel)
    Next cel
    merci

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Pourquoi ne pas enlever la ligne InputBox de ta macro et de ne la lancer qu'après avoir fait la sélection ?
    A ta place, je la lierais à un bouton placé dans le ruban d'outils à accès rapide, comme ça tu pourrais l'utiliser exactement comme le bouton Italic ou Bold su ruban d'accueil.
    Tu n'aurais plus à te préoccuper de savoir où elle se trouve.

    Si tu la places dans un xlsa que tu places lui-même dans le répertoire des fichiers lancés au démarrage, ça pourrait même devenir totalement transparent.

    Perso, j'ai plusieurs boutons qui fonctionnent ainsi.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Pourquoi ne pas enlever la ligne InputBox de ta macro et de ne la lancer qu'après avoir fait la sélection ?
    A ta place, je la lierais à un bouton placé dans le ruban d'outils à accès rapide, comme ça tu pourrais l'utiliser exactement comme le bouton Italic ou Bold su ruban d'accueil.
    Tu n'aurais plus à te préoccuper de savoir où elle se trouve.

    Si tu la places dans un xlsa que tu places lui-même dans le répertoire des fichiers lancés au démarrage, ça pourrait même devenir totalement transparent.

    Perso, j'ai plusieurs boutons qui fonctionnent ainsi.
    le soucis c'est que ce n'est pas moi qui vais utiliser cette macro, j'essaie donc que ce soit le plus simple possible. Par contre ton truc de le placé dans le répertoire des fichiers lancés au démarrage ça m'intéresse.
    en rubas d'accès rapide ca fonctionne sur le fichier en cours mais pas sur un autre et le truc c'est que ce ne sera pas toujours le même fichier

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par tben08 Voir le message
    en rubas d'accès rapide ca fonctionne sur le fichier en cours mais pas sur un autre et le truc c'est que ce ne sera pas toujours le même fichier
    Le fichier en cours, c'est celui que tu sélectionnes. Ca peut donc être n'importe quel fichier.

    Par exemple, je me suis fais un bouton "Centrer sur plusieurs cellules" (un bouton qui existait dans les anciennes versions d'Excel mais qui, dans les récentes, a disparu au profit des fusions), avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.HorizontalAlignment = xlCenterAcrossSelection
    Je sélectionnes un groupe horizontal de cellules n'importe où dans n'importe quel fichier ouvert, j'appuie sur ce bouton et aussitôt, le contenu de la première est centré sur l'ensemble.

    Et le fichier qui contient cette macro est un xlam placé dans un répertoire XLSTART.
    Il s'ouvre donc au lancement d'Excel sans aucune feuille de calcul (il n'apparait même pas dans la liste des fenêtres).
    C'est totalement transparent pour l'utilisateur qui utilise ce bouton exactement comme il utiliserait le bouton de mise en gras du ruban d'accueil.

    C'est beaucoup plus simple de que poser une question en cours de macro pour demander une sélection.

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut récupérer la feuille où la sélection a été faite, afin de pouvoir travailler dessus lors du remplacement :

    voici une proposition, qui utilise l'inputbox en mode Range (Type:=8)


    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
    Sub toto()
    Dim Cell As Range
    Dim Sh As Worksheet
    Dim Plage As Range
     
    With Application.InputBox("Sélectionner", , , , , , , 8)
        On Error GoTo Fin   ' si l'utilisateur annule l'inputbox la ligne suivant va planter : on va directement en fin de procédure
        Set Sh = .Parent
        Set Plage = Sh.Range(.Address)
    End With
     
    For Each Cell In Plage.Cells
        Cell = UCase(Cell)
    Next Cell
     
    Fin:
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    il faut récupérer la feuille où la sélection a été faite, afin de pouvoir travailler dessus lors du remplacement :

    voici une proposition, qui utilise l'inputbox en mode Range (Type:=8)


    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
    Sub toto()
    Dim Cell As Range
    Dim Sh As Worksheet
    Dim Plage As Range
     
    With Application.InputBox("Sélectionner", , , , , , , 8)
        On Error GoTo Fin   ' si l'utilisateur annule l'inputbox la ligne suivant va planter : on va directement en fin de procédure
        Set Sh = .Parent
        Set Plage = Sh.Range(.Address)
    End With
     
    For Each Cell In Plage.Cells
        Cell = UCase(Cell)
    Next Cell
     
    Fin:
    End Sub
    super ça fonctionne très bien merci!!

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

Discussions similaires

  1. [Flex4] Transformer une zone XML en classe
    Par magoer dans le forum Flex
    Réponses: 4
    Dernier message: 17/03/2011, 18h34
  2. Transformer une zone de texte en liste déroulante
    Par Lenezir dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/02/2008, 15h26
  3. Transformer une partie de chaine de caractère en majuscule.
    Par DelphLaga dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/05/2007, 14h00
  4. fonction qui transforme une chaine en majuscule
    Par kawther dans le forum Langage
    Réponses: 3
    Dernier message: 23/04/2007, 11h47
  5. ecrire en majuscule dans une zone de text
    Par sanfour_walhan dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/12/2006, 01h42

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