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 :

Je n'arrive pas à terminer une macro


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2021
    Messages : 2
    Par défaut Je n'arrive pas à terminer une macro
    Bonjour à tous,

    Je me permets de solliciter votre aide pour créer une macro. J'ai tenté d'en taper une mais ça ne marche pas et l'enregistreur est un peu KO.

    En fait, j’ai un fichier joint avec deux onglets
    • Société A
    • Import


    Je souhaite créer une macro qui va ouvrir une boite de dialogue

    Je mets un critère "OKMACRO" en cellule I1 pour que la macro sache si elle doit s'appliquer sur l'onglet, (elle ne s'appliquera pas sur tous les onglets d'un classeur)
    Je renseigne le mois , exemple ici « 7 ».
    Je renseigne dans la boite de Dialogue le critère où la formule est appliquée , ici c'est la colonne K avec le critère "Réel 2021"
    La formule sera toujours en ligne 10
    Ensuite je souhaite faire un copier/coller valeur de la formule sur toutes les lignes de la colonne sélectionnée et je souhaite mettre un range de maximum 800 lignes.

    Pourriez vous m'aider svp? Aussi simple que cela puisse paraitre je n'y suis pas arrivé (je n'utilise pas souvent les macros)
    VB:Copier dans le presse-papier
    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
    Sub copieformule()
    Dim ws As Worksheet
        ' Est ce que macro doit marcher
       If Range("I1") = "OKMACRO"
       Then
       End If
     
    Answer = MsgBox(" " .Range("L12:W12")
    If answer = "" Then
    Answer = MsgBox(" " .Range("L1:W800)
    If answer = "Réel 2021"then
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
    End Sub
     
    Sub allws()
    Dim ws As Worksheet
    Merci par avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Salut, alors déjà avant de jeter un oeil a ton code, on peut voir que tu enregistre sous .xlsx, ce format ne prends pas en charge les macro. Donc il ne peut pas y avoir de code sur ce fichier. Les fichiers comprenant de macro sont en .xlsm

  3. #3
    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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ouvre pas les fichiers joints
    Avant d'aller plus loins, le code que vous publiez ne peut pas fonctionner car il y a des erreurs de syntaxe que l'éditeur VBE a dû vous signaler
    Exemple ligne 8 et 10.
    Answer = MsgBox(" " .Range("L12:W12")
    Il manque une parenthèse et de plus la fonction MsgBox ne renvoie que le n° du bouton sur lequel l'utilisateur a cliqué, à condition bien entendu d'avoir prévu les boutons (argument Buttons) or là sans argument le seul bouton qui s'affiche est OK donc il n'y a aucun intérêt

    Votre test en ligne 11, voir ci-dessous, ne peut donc pas fonctionner non plus pour les mêmes raisons que décrites plus haut
    Answer = MsgBox(" " .Range("L1:W800)
    If answer = "Réel 2021"then
    Dans ce cas précis, la fonction InputBox serait plus appropriée
    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. Je n'arrive pas à recuperer une image
    Par lemonsoda dans le forum Langage
    Réponses: 6
    Dernier message: 26/01/2006, 09h32
  2. Réponses: 7
    Dernier message: 25/01/2006, 21h37
  3. [HTML][CSS] W3C--> Je n'arrive pas à résoudre une erreur
    Par gwendy dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/12/2005, 23h50
  4. débutant en VBA je n'arrive pas à finir ma macro excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2005, 12h20
  5. Je n'arrive pas à détruire une fenêtre
    Par CORREGE Frédéric dans le forum MFC
    Réponses: 6
    Dernier message: 22/02/2004, 20h28

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