Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 21h27   #1
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
Par défaut [VBA] Assemblage de deux codes

Bonjour à tous,

Voila j'ai un petit souci pour assembler deux codes

Mon premier code :

Code :
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 :
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.
hunter76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 21h42   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

Pour commencer, On Optimise un peu le code

Code :
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
Citation:
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 ?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 21h57   #3
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
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) ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 21h57   #4
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
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é.
hunter76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 20h46   #5
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

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

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
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
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 21h06   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
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
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2012, 22h04   #7
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
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 .
hunter76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 22h48   #8
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Parce que j'avais compris que tu copies les cellules avec lien.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2012, 17h16   #9
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
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.
hunter76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h07.


 
 
 
 
Partenaires

Hébergement Web