Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 04/08/2007, 07h59   #1 (permalink)
XLDnaute Occasionel
 
Date d'inscription: avril 2007
Localisation: PAPEETE
Version Excel : Excel 2003 (PC)
Messages: 248
Par défaut Calculs en VBA

Bonjour le forum,

Dans mon classeur une macro recopie les données en provenance de 12 feuilles vers une feuille "Bilan" sur les colonnes A à W. Sur les colonnes X à AN de cette meme feuille des calculs sont effectués.

Je cherche à effectuer ces calculs par macro VBA, de telle facon dés qu'une ligne est ajoutée les calculs soient effectués automatiquement.

Merci.
Fichiers attachés
Type de fichier : zip Tiapiri 2007_V2.zip (25,7 Ko, 13 affichages)
SPEA est déconnecté   Réponse avec citation
ANNONCES
Vieux 04/08/2007, 09h08   #2 (permalink)
XLDnaute Impliqué
 
Avatar de papapaul
 
Date d'inscription: octobre 2006
Localisation: Caen
Version Excel : Excel XP (PC)
Messages: 583
Arrow Re : Calculs en VBA

Bonjour SPEA,
A tu essayé avec l'éditeur de Macro ?
Tes formules existent : il suffit peut-être de les copier
sur une plage voulue ?
Avec la colonne AA ca donne ca !

Sub AA()
' Macro enregistrée le 04/08/2007 par papapaul
Range("AA2").Select
Selection.Copy
Range("AA2:AA50").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Si tu connais pas, voici comment faire
Outils, Macro, Nouvelle Macro
click sur AA2, edition, copier, selection de AA2 appuyer sur Maj
click derniere cellule de la plage voulue (ici j'ai pris AA50)
edition, collage speciale, formules, outils, macro, arret de l'enregistrement.

Tu peux donc faire une macro pour chaque colonne.
Ensuite : Tu pourra crée un module qui fera toutes les colonnes
en même temps en y mettant dedans
call AA, call AB etc...

Ai-je compris ta question ?

Bonne journée sur XLD
papapaul est déconnecté   Réponse avec citation
Vieux 04/08/2007, 09h46   #3 (permalink)
XLDnaute Impliqué
 
Avatar de papapaul
 
Date d'inscription: octobre 2006
Localisation: Caen
Version Excel : Excel XP (PC)
Messages: 583
Arrow Re : Calculs en VBA

Tu peux aussi tout faire en même temps :

Range("X2:AN2").Select
Selection.Copy
Range("X2:AN50").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

A la place de 50, tu mets ce que tu veux :
Sur les lignes vides va apparaitre des 0 ou des #N/A ou Valeur
On peut les "effacer" avec VBA mais je sais plus comment.
Y a des solutions sur le forum.
papapaul est déconnecté   Réponse avec citation
Vieux 04/08/2007, 10h58   #4 (permalink)
XLDnaute Occasionel
 
Date d'inscription: avril 2007
Localisation: PAPEETE
Version Excel : Excel 2003 (PC)
Messages: 248
Par défaut Re : Calculs en VBA

En fait j'ai mis au point des formules pour calculer les colonnes X à AN et je voudrais le faire par VBA...

A la limite si on m'explique pour les premieres colonnes je peux essayer, avec mon modeste niveau, d'adapter sur les colonnes suivantes.

Merci.
SPEA est déconnecté   Réponse avec citation
Vieux 04/08/2007, 11h56   #5 (permalink)
XLDnaute Barbatruc
 
Avatar de BrunoM45
 
Date d'inscription: avril 2005
Localisation: MONTARGIS (la Venise du Gâtinais)
Version Excel : Excel 2003 (PC)
Messages: 2 571
Lightbulb Re : Calculs en VBA

Salut SPEA,

Une petite question, pourquoi veux tu faire ça en VBA !?

Une recopie des formules ne te va pas ?

Sinon tu trouveras ci-dessous ton fichier avec plusieurs macros, pour la recopie de tes formules

A+
Fichiers attachés
Type de fichier : zip Tiapiri 2007_V2.zip (28,6 Ko, 7 affichages)
__________________
Cordi@lement.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.

VBA, vous ne savez pas comment faire ... Pensez à l'enregistreur de macro !
Menu -> Outils -> Macro -> Nouvelle macro

Si vous souhaitez rejoindre le club des Supporters d'XLD ... c'est ICI

Petite citation : C'est en XLDant que l'on devient XLDnaute Barbatruc ...

Dernière modification par BrunoM45 ; 04/08/2007 à 12h16.
BrunoM45 est déconnecté   Réponse avec citation
Vieux 04/08/2007, 12h20   #6 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 5 956
Par défaut Re : Calculs en VBA

bonjour SPEA
Salut Papapaul
Salut Bruno

solution qui rejoint celle de Bruno et pourrait satisfaire SPEA
(sous condition de conserver les formules en X2:AN2)

a mettre en feuille Bilan

Code:
 
Private Sub Worksheet_Activate()
   Range("X2:AN2").AutoFill Destination:=Range("X2:AN" & Range("A65536").End(xlUp).Row), Type:=xlFillDefault
End Sub
pierrejean est déconnecté   Réponse avec citation
Vieux 04/08/2007, 12h36   #7 (permalink)
XLDnaute Impliqué
 
Avatar de papapaul
 
Date d'inscription: octobre 2006
Localisation: Caen
Version Excel : Excel XP (PC)
Messages: 583
Arrow Re : Calculs en VBA

Bonjour tous, Bruno
Ca c'est du vite fait bien fait.
Comment t'a fait pour transformer (copier) toutes les formules
en VBA aussi vite ?
Modestement avec l'enregistreur de macro, toujours lui...
je me suis amusé à construire ca. C'est OK
Sub NBVAL()
Range("E2:E5").Select
Selection.FormulaR1C1 = "=COUNTA(RC[-4]:RC[-1])"
Range("E2:E5").Select
End Sub
Sub NBSI()
Range("F2:F5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-5]:RC[-1],"">2"")"
Range("F2:F5").Select
End Sub
Avec des fonctions imbriquées, pas sur du tout que
je sois capable d'y arriver.
Je m'interroge, si j'arrive à faire une formule compliquée
du genre si(index(equiv..avec l'assistant fonction d'excel
Est-il possible de transformer directement en VBA sans
passer par l'enregistreur ?
J'ai l'impression que tu a procéder ainsi ?
Excuse si ma question te parait idiote mais j'utilise tres
rarement les formules.

Bonne journée à tous Soleil
papapaul est déconnecté   Réponse avec citation
Vieux 04/08/2007, 12h40   #8 (permalink)
XLDnaute Impliqué
 
Avatar de papapaul
 
Date d'inscription: octobre 2006
Localisation: Caen
Version Excel : Excel XP (PC)
Messages: 583
Par défaut Re : Calculs en VBA

Oups,
Evidement pas besoin du Range en dessous de
ActiveCell.FormulaR1C1
@+
papapaul est déconnecté   Réponse avec citation
Vieux 04/08/2007, 12h45   #9 (permalink)
XLDnaute Occasionel
 
Date d'inscription: avril 2007
Localisation: PAPEETE
Version Excel : Excel 2003 (PC)
Messages: 248
Par défaut Re : Calculs en VBA

Bonjour Bruno, Pierrejean, le fil

Je voulais passer par des calculs en VBA notamment pour eviter que d'autres utilisateurs de ce fichier n'aient accés aux formules ou ne puissent les modifier.

Mais si c'est trop complexe à mettre en oeuvre je me satisfait trés bien de la solution proposée de recopie des formules.

Merci
SPEA est déconnecté   Réponse avec citation
Vieux 04/08/2007, 12h56   #10 (permalink)
XLDnaute Impliqué
 
Avatar de papapaul
 
Date d'inscription: octobre 2006
Localisation: Caen
Version Excel : Excel XP (PC)
Messages: 583
Talking Re : Calculs en VBA

Re, oups, Pierrejean.
Je t'ai pas vu,
Je crois que tu a répondu à ma question avant même
que je la pose

Vive XLD et les vacances
papapaul est déconnecté   Réponse avec citation
Vieux 04/08/2007, 13h44   #11 (permalink)
XLDnaute Barbatruc
 
Avatar de BrunoM45
 
Date d'inscription: avril 2005
Localisation: MONTARGIS (la Venise du Gâtinais)
Version Excel : Excel 2003 (PC)
Messages: 2 571
Lightbulb Re : Calculs en VBA

Citation:
Envoyé par SPEA
Bonjour Bruno, Pierrejean, le fil

Je voulais passer par des calculs en VBA notamment pour eviter que d'autres utilisateurs de ce fichier n'aient accés aux formules ou ne puissent les modifier.

Mais si c'est trop complexe à mettre en oeuvre je me satisfait trés bien de la solution proposée de recopie des formules.

Merci
Une solution simple est d'utiliser mon code "CopieFormules1" et à la fin du code après le recopier vers le bas, tu fais un copier/coller valeur !
Ce qui donne :
Code:
  ' Recopie des formules vers le bas
  Sht.Range("X2:AN" & DerLig).FillDown
  Sht.Range("X2:AN" & DerLig).Copy
  Sht.Range("X2:AN" & DerLig).PasteSpecial Paste:=xlPasteValues
Comme ça hop, plus de formule, que les résultats

A+
__________________
Cordi@lement.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.

VBA, vous ne savez pas comment faire ... Pensez à l'enregistreur de macro !
Menu -> Outils -> Macro -> Nouvelle macro

Si vous souhaitez rejoindre le club des Supporters d'XLD ... c'est ICI

Petite citation : C'est en XLDant que l'on devient XLDnaute Barbatruc ...
BrunoM45 est déconnecté   Réponse avec citation
Vieux 04/08/2007, 13h52   #12 (permalink)
XLDnaute Barbatruc
 
Avatar de BrunoM45
 
Date d'inscription: avril 2005
Localisation: MONTARGIS (la Venise du Gâtinais)
Version Excel : Excel 2003 (PC)
Messages: 2 571
Lightbulb Re : Calculs en VBA

Citation:
Envoyé par papapaul
Bonjour tous, Bruno
Ca c'est du vite fait bien fait.
Comment t'a fait pour transformer (copier) toutes les formules
en VBA aussi vite ?
J'ai appris la dactylo, dans ma jeunesse

[quote]Modestement avec l'enregistreur de macro, toujours lui...
je me suis amusé à construire ca. C'est OK
Sub NBVAL()
Range("E2:E5").Select
Selection.FormulaR1C1 = "=COUNTA(RC[-4]:RC[-1])"
Range("E2:E5").Select
End Sub
Sub NBSI()
Range("F2:F5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-5]:RC[-1],"">2"")"
Range("F2:F5").Select
End Sub
Avec des fonctions imbriquées, pas sur du tout que
je sois capable d'y arriver.
Citation:
Avec l'enregistreur de macro, ça peut parfois bloquer sur des formules complexes (et encore)

[auote]Je m'interroge, si j'arrive à faire une formule compliquée
du genre si(index(equiv..avec l'assistant fonction d'excel
Est-il possible de transformer directement en VBA sans
passer par l'enregistreur ?
Sans problème, il suffit de copier/coller la formule dans ton code VBA
Et d'utiliser : FormulaLocal
Après il faut éventuellement modifier tous les chifres des lignes, par une variable, et hop le tour est joué

Citation:
J'ai l'impression que tu a procéder ainsi ?
Oui, un simple copier/coller de la formule

Citation:
Excuse si ma question te parait idiote mais j'utilise tres
rarement les formules.
Une question n'est jamais idiote, nous avons tous des niveaux différends sur Excel !
Une question qui paraît simple à quelqu'un, peut être très compliquée pour une autre et inversement.

Bonne journées à toi, PapaPaul
__________________
Cordi@lement.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.

VBA, vous ne savez pas comment faire ... Pensez à l'enregistreur de macro !
Menu -> Outils -> Macro -> Nouvelle macro

Si vous souhaitez rejoindre le club des Supporters d'XLD ... c'est ICI

Petite citation : C'est en XLDant que l'on devient XLDnaute Barbatruc ...

Dernière modification par BrunoM45 ; 04/08/2007 à 13h58.
BrunoM45 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
calculs automatiques BrunoB Forum Excel 1 24/07/2006 11h43
calculs distances GPS le flemallois Forum Excel 6 03/07/2006 11h30
tcd calculs JM Forum Excel 0 24/08/2005 11h50
calculs sur du texte joel Forum Excel Downloads - Archives 6 08/02/2005 17h44
Calculs de colonnes Captain Forum Excel Downloads - Archives 3 15/08/2004 21h13


Fuseau horaire GMT +2. Il est actuellement 19h53.


(C) 2006 Excel Downloads