Macros, effectuer un calcul

enzogat

XLDnaute Nouveau
Bonjour à tous,

je me suis lancé depuis ce matin dans les macros. De ce fait, je n'arrive pas à faire ce que je veux malgré un énorme bouquin que je suis en train de feuilleté.

J'aimerais effectuer une macro qui me dise :
Si dans la colonne A j'ai un x, alors je fais dans la colonne B le calcul 3+3
Si je n'ai rien alors je n'affiche rien

dans le cas où le fichier contienne plus de 10000 lignes, il faut que le code puisse tester toutes les cellules de la colonne A et faire le calcul dans B en face des A qui contienne le x.

Est-ce que quelqu'un peut m'aider pour ce problème ?

Merci beaucoup
 

NeMoS

XLDnaute Junior
Re : Macros, effectuer un calcul

Bonjour enzogat,
Ci-joint une ébauche de code
A voir si cela te convient:

Code:
Dim i as integer
i=1

For i =1 to 10000

If range("A"&i).value = "x" Then
       range("B" & i).FormulaR1C1 = "ce que tu veux faire"
Enf If
Next

NeMoS
 

enzogat

XLDnaute Nouveau
Re : Macros, effectuer un calcul

@ NeMos : je vais essayer le code que tu m'as donner
@ Pierrot93 : le truc n'est pas aussi simple que cela. Pour faire simple je fait des extractions SAP que je colle dans un fichier excel. Grâce à ce fichier je peux calculer différent KPI pour le service.
Cependant comme les extraction sont plus ou moins longue (souvent courte en début de mois et plus longue en fin de mois, je dois tirer les formules jusqu'au bout de la dernière ligne qui contient des indications. Je ne peux donner le fichier (confidentiel) mais les données dépassent certaines fois 24000 lignes donc assez long.
Je veux donc créer une macro qui puisse détecter cette dernière ligne et qui tire les formules jusqu'au bout.
 

enzogat

XLDnaute Nouveau
Re : Macros, effectuer un calcul

Pierrot,

j'ai essayer l'enregistreur mais cela ne me donne pas ce que je souhaite

En effet le code me donne le numéro de la dernière ligne.
Du coup j'ai essayer de tirer la formule jusqu'a cette ligne et le code est le suivant

Sub Macro2()
'
' Macro2 Macro
'

'
Selection.AutoFill Destination:=Range("B1:B524"), Type:=xlFillDefault
Range("B1:B524").Select
End Sub


J'ai cherché par tout les moyens pour que la formules se tire toute seule et donc j'ai essayer le code suivant

Sub denière_ligne()
Selection.AutoFill Destination:=Range("B1:Cells(Rows.Count, 1).End(xlUp).Row"), Type:=xlFillDefault
Range("B1:Cells(Rows.Count, 1).End(xlUp).Row").Select
End Sub

sans succès.
Je ne comprend pas le fonctionnement de VBE encore donc je ne sais pas quel terme rajouter ou quel point mettre a quel endroit....
je sais je pose beaucoup de question mais c'est justement pour apprendre
 

enzogat

XLDnaute Nouveau
Re : Macros, effectuer un calcul

Sub denière_ligne()
Range("B1").AutoFill Destination:=Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row), Type:=xlFillDefault
End Sub

le code suivant ne marche pas
le message suivant s'affiche "la méthode Autofill de la classe range a échoué
 

Discussions similaires

Réponses
3
Affichages
270

Statistiques des forums

Discussions
312 513
Messages
2 089 206
Membres
104 063
dernier inscrit
lisadp