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] Assemblage de deux codes [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut [VBA] Assemblage de deux codes
    Bonjour à tous,

    Voila j'ai un petit souci pour assembler deux codes

    Mon premier code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Compute_period()
    ' Compute_period Macro
     
    Sheets("basse de données").Select
    Range("D2:D" & Sheets("basse de données").Range("F6").Value).Select
    Selection.copy
    Sheets("Feuil3").Select
    Range("A1").Select
    ActiveSheet.Paste Link:=True
    Range("B1").Select
    End Sub
    Qui me permet de sélectionner un nombre défini de cellules

    et mon second code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub Macro2()
    ' Macro2 Macro
        ActiveCell.FormulaR1C1 = "=COUNTA(C[-6])/50"
    End Sub
    qui me permet de calculer le nombre de cellules que je dois sélectionner.

    Donc voilà mon souci, j'aimerai que le résultat de mon second code soit la valeur prise de "F6" de mon premier code.

    Merci d'avance pour vos réponses.

    Cordialement.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Pour commencer, On Optimise un peu le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Compute_period()
    ' Compute_period Macro
     
    Sheets("basse de données").Range("D2" & Sheets("basse de données").Range("F6").Value).Copy
     
    Sheets("Feuil3").Range("A1").Select
    Activesheet.Paste Link:=True
     
    Range("B1").Select
    End Sub
    Donc voilà mon souci, j'aimerai que le résultat de mon second code soit la valeur prise de "F6" de mon premier code.
    Peux tu développer ?

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonsoir,

    Ce n'est pas très clair (pour moi, en tout cas). Peux-tu expliquer comment on doit calculer le nombre de cellule (autrement que par rapport à la cellule active) ?

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 104
    Par défaut
    Salut

    Tu peux utiliser Evaluate() pour connaitre ce qu'une formule retour comme résultat... mais je comprend pas trop ce que tu souhaites faire exactement, il serait peut-être utile de mettre plus de précision.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Compute_period()
    Dim Lastlig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("basse de données")
        Lastlig = .Cells(.Rows.Count, "D").End(xlUp).Row    'Ligne de la dernière cellule remplie de la colonne D de Feuille Basse de données
        Worksheets("Feuil3").Range("A1:A" & Lastlig - 1).Formula = "='" & .Name & "'!D2"
    End With
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    merci mercatog,
    mais lorsque je lance le code j'ai deux soucis
    - il copie la totalité de mes cellule non vide
    - dans la cellule est écrit : ='Basse de données'!D2

    et comme je débute je ne vois pas comment faire.

    cordialement .

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Parce que j'avais compris que tu copies les cellules avec lien.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    Tout d'abord merci pour les réponses.

    Dans la cellule "F6" se trouve un chiffre (que j'ai mis au hasard pour vérifier si le code fonctionner), mais la cellule doit prendre le résultat de la formule [NBVAL(A:A)] (le résultat peut changer) donc j'aimerai bien intégrer le second code qui correspond à la formule [NBVAL] au premier afin qu'il soit automatique.

    J'espère avoir été un peu plus clair dans l'explication, merci d'avance.

    Cordialement.

    PS: merci pour le code simplifié.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    J'ai trouvé la réponse, merci pour vos réponses.

    la réponse : j'ai copie juste la valeur de ma formule [NBVAL] dans une autre cellule, cela peut semblé un peu archaïque ma sa fonctionne.

    Cordialement.

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

Discussions similaires

  1. [Python 3.X] Assemblage de deux parties de code
    Par superfranois dans le forum Programmation multimédia/Jeux
    Réponses: 11
    Dernier message: 18/05/2015, 15h27
  2. [XL-2010] assemble deux code VBA
    Par a.ouguerzam dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2015, 11h48
  3. rs 232 et assemblage de deux codes C
    Par ahmednaess dans le forum C
    Réponses: 4
    Dernier message: 01/07/2013, 19h46
  4. [XL-2010] Code VBA pour comparer deux feuilles Excel
    Par sam013 dans le forum Excel
    Réponses: 1
    Dernier message: 13/08/2012, 14h53

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