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 30/11/2011, 09h50   #1
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 85
Points : 5
Points : 5
Par défaut casser les liens d'une cellule avec une feuille

bonjour à tous, en fait voila mon probleme, j'utilise une feuille nommé "top 20 répartion mo" sur laquelle ma macro rentre pas mal de formules dont celle ci :

Code :
 Sheets("Top20 répartition h MO").Cells(4, variable3).Value = "=SUMIF(" & Worksheets(variable1).Name & "!Q:Q,4014," & Worksheets(variable1).Name & "!G:G)"
comme vous pouvez le voir cette formule va chercher des valeurs dans la feuille qui porte le numéro variable 1 , sachant qu'il y a une boucle qui repete cette instruction pour genre 20 feuilles, et bien tant que les feuilles qui contiennent les données restent dans le classeur, tout va bien, mais dès que je vire les feuilles, et bien j'ai des ##### partout,

ma question est, est-il possible une fois le calcul fait de récupérer la valeur en tant que tel quitte à n'écrire dans la cellule que la valeur propre, et non pas la formule qui permet d'y arriver?

Merci
kyros21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 09h59   #2
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut copier valeur

Bonjour à toi, Bonjour au Forum,

Pour affecter à une cellule une valeur, tu as plusieurs solutions dont celle qui consiste à affecter des fonctions VBA à la celle-ci.

Si tu préfères utiliser les formules, alors tu as la solution (dixit mercatog ou sylkiroad, je ne sais jamais):

Code :
1
2
3
4
With Range("A1")
    .Formula = "ta formule"
    .Value = .Value
End With
La 3ème ligne évite un collage spécial valeur plus lourd.
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h15   #3
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 85
Points : 5
Points : 5
en fait je viens de trouver une solution, pas très jolie jolie, mais bon sa fait l'affaire :


voici comment faire:

après la formule, je rajoute :

Code :
Sheets("Top20 répartition h MO").Cells(4, variable3).Value = Sheets("Top20 répartition h MO").Cells(4, variable3).Value

merci
kyros21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h22   #4
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut copier valeur

Salut Kyros21,

Si tu peux m'expliquer la différence avec le code proposé, alors je suis preneur.

Malgré tout, et si c'est le cas, tu peux positionner cette discussion en mode "Résolu".
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h39   #5
Invité régulier
 
Homme
Inscription : novembre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 85
Points : 5
Points : 5
merci, pour la réponse, c'est exactement ce que je fais je pense, il n'y a donc pas plus jolie que de faire sa.

Merci de votre aide

je me demandais si il n'etait pas possible de transcrire des fonctions comme celle ci uniquement par VBa sans passer par des fonctions excel.

Code :
Sheets("Top20 répartition h MO").Cells(4, variable3).Formula = "=SUMIF(" & Worksheets(variable1).Name & "!Q:Q,4014," & Worksheets(variable1).Name & "!G:G)"
Par exemple en passant par du Application.WorksheetFunction.Sumif ( .....)

du genre :
Code :
Sheets("Top20 répartition h MO").Cells(4, variable3).Value = Application.WorksheetFunction.Sumif ( .....)
comme sa on ne passe pas par du excel, et la valeur affiché dans la cellule est une Valeur et non pas une formule donc pas de probleme de lien, et on économise des lignes dans la macro .

Merci
kyros21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h46   #6
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Réponse : oui. C'est d'ailleurs ce que j'ai écrit plus haut.
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 10h49   #7
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Si tu peux, c'est plus propre que la copie de valeur et tu maîtrises mieux les paramètres.

Code :
Sheets("Top20 répartition h MO").Cells(4, variable3).Value = Application.WorksheetFunction.Sumif (Worksheets(variable1).Range("Q:Q"), 4014, Worksheets(variable1).Range("G:G"))
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h38.


 
 
 
 
Partenaires

Hébergement Web