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 :

VBA et Ctrl+H


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Janvier 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Janvier 2020
    Messages : 1
    Par défaut VBA et Ctrl+H
    Hello a tous

    Assez debutant en VBA je recherche a automatiser un Ctrl+H non pas avec des valeur fixes mais fonctions de valeurs de 2 cellules

    en gros et pour simplifier :

    Dans les formules du range ci dessous

    Range("B11:X14")

    Il faudrait qu'a chaque fois qu'il croise la valeur de la cellule A1 elle soit remplacée par celle de la cellule A2

    Merci par avance et bonne journée

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Gwigni, bonjour le forum,

    Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro1()
    Dim CEL As Range 'déclare la variable CEL
     
    For Each CEL In Range("B11:X14") 'boucle sur toutes les cellules CEL de la plage B11:X14
        'si la valeur de la cellule CEL est égale à la valeur de la cellule A1 alors la valeur de la cellule CEL devient la valeur de la cellule A2
        If CEL.Value = Range("A1").Value Then CEL.Value = Range("A2").Value
    Next CEL 'prochaine cellule de la boucle
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Par défaut VBA
    Je pense qu'il manque le End If

  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
    Autre proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B11:X14").Replace(Range("A1"), Range("A2"))
    A lire : https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    Un petit coup d'enregistreur de macro aurait put te mettre sur cette voie.

    Citation Envoyé par zoltar_x Voir le message
    Je pense qu'il manque le End If
    Tu penses faux : lorsque le Then ne déclenche qu'une action, elle peut être écrite sur la même ligne et ne nécessite pas de End If.
    C'est une syntaxe qui existe depuis les premiers Basics dans les années 70.
    A lire : https://docs.microsoft.com/fr-fr/off...else-statement

  5. #5
    Membre éprouvé
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Par défaut End If facultatif
    Exact. Je le mettrai même s'il est facultatif. Question de bonne syntaxe.
    La déclaration de variables est aussi facultative en Vba (le type variant étant par défaut) mais il est préférable de les déclarer pour avoir du code un tant soit peu pro.

  6. #6
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zoltar_x Voir le message
    Exact. Je le mettrai même s'il est facultatif. Question de bonne syntaxe.
    ATTENTION
    Facultatif, pas vraiment.

    ceci est correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Num_Mois = 1 Then MyString = "Janvier"
    =
    If Num_Mois = 1 Then
    	MyString = "Janvier"
    End If

    ceci n'est pas correct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Num_Mois = 1 Then MyString = "Janvier" End If
    Donc je suis de l'avis de dire 2 synthaxes différentes plutôt de facultatif


    Citation Envoyé par zoltar_x Voir le message
    La déclaration de variables est aussi facultative en Vba (le type variant étant par défaut) mais il est préférable de les déclarer pour avoir du code un tant soit peu pro.
    Je suis tout à fait d'accord avec toi il est préférable de déclarer les variables. l'instruction : "Option Explicit" permet justement d'aider le développeur à ne pas oublier de faire ses déclarations (du coup ce n'est plus facultatif )

    A bientôt

  7. #7
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 581
    Par défaut
    Citation Envoyé par zoltar_x Voir le message
    Exact. Je le mettrai même s'il est facultatif. Question de bonne syntaxe.
    La déclaration de variables est aussi facultative en Vba (le type variant étant par défaut) mais il est préférable de les déclarer pour avoir du code un tant soit peu pro.
    il n'est pas facultatif c'est la bonne syntaxe!
    Pour la déclaration des variables je suis d'accord même si j'en ai cur dans cet exemple !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if a=b then v=c else v=y
    if a=b then
       v=c 
    else
      v=y
    end if
    Nom : Sans titre.png
Affichages : 1094
Taille : 46,8 Ko

  8. #8
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 581
    Par défaut
    bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim Mois()
    Mois = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
    Debug.Print Mois(Month(Date))
    End Sub
    mais dans le fils je n'es rien vue qui arrive à la conclusion qu'il fallait replacer le n° mois par son texte!

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il y a également la fonction MonthName
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub t()
      Debug.Print MonthName(Month(Date))
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Toutes versions] Syntaxe pour intégrer "ctrl+C" dans du code vba.
    Par Mat08 dans le forum IHM
    Réponses: 6
    Dernier message: 04/06/2010, 00h57
  2. [VBA excel] utilisation de CTRL + ESPACE
    Par Zetophe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2008, 07h16
  3. VBA Visio 2000 - Anti Ctrl+X
    Par ChristopheLBP dans le forum Visio
    Réponses: 0
    Dernier message: 05/10/2007, 09h16
  4. [VBA-E] Macro qui fait Ctrl + F ?
    Par jefe.k dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2007, 11h04
  5. Réponses: 3
    Dernier message: 08/03/2007, 08h51

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