Macro excel: opération sur les colonnes
Résolu
fab250
Messages postés
5
Statut
Membre
-
fab250 Messages postés 5 Statut Membre -
fab250 Messages postés 5 Statut Membre -
Je suis novice en écriture de macros avec VB et j'aimerai avoir de l'aide par rapport au problème suivant :
J'ai un système de régulation (pompe à chaleur, centrale traitement d'air, ballon de stockage...) avec un relevé de mesure (température, débit...) toutes les semaines....cela représente à peu près 10000 lignes par colonne et j'aimerai donc pouvoir « automatiser » le calcul de certaines grandeurs à l'aide de macros (coefficient de performance, puissances...).
Je vais essayer de décrire les différentes étapes le plus précisément possible pour que vous saisissiez bien la démarche :
1) Calcul de la puissance produite par le système : 1.16*colonne B* (colonne C-colonne E) => à mettre colonne P (faire sur les colonnes entières => jusqu'à la dernière ligne où il y a une valeur=> à peu près la 10083éme lignes)
2) Calcul de la puissance consommé : colonne H* colonne I => mettre colonne Q
3) Calcul du COP (coefficient de performance) : il faut inclure une condition IF
=> Si la colonne I<=3 et que colonne Q=0 alors COP=0 sinon COP= (colonne P /colonne Q) (ce sont deux colonnes créent précédemment) => A mettre dans colonne R
Merci d'avance pour l'aide que vous allez m'apporter. Je sais que ce n'est que la démarche mais je préfère vous laisser libre dans l'écriture de cette macro.
Cordialement,
J'ai un système de régulation (pompe à chaleur, centrale traitement d'air, ballon de stockage...) avec un relevé de mesure (température, débit...) toutes les semaines....cela représente à peu près 10000 lignes par colonne et j'aimerai donc pouvoir « automatiser » le calcul de certaines grandeurs à l'aide de macros (coefficient de performance, puissances...).
Je vais essayer de décrire les différentes étapes le plus précisément possible pour que vous saisissiez bien la démarche :
1) Calcul de la puissance produite par le système : 1.16*colonne B* (colonne C-colonne E) => à mettre colonne P (faire sur les colonnes entières => jusqu'à la dernière ligne où il y a une valeur=> à peu près la 10083éme lignes)
2) Calcul de la puissance consommé : colonne H* colonne I => mettre colonne Q
3) Calcul du COP (coefficient de performance) : il faut inclure une condition IF
=> Si la colonne I<=3 et que colonne Q=0 alors COP=0 sinon COP= (colonne P /colonne Q) (ce sont deux colonnes créent précédemment) => A mettre dans colonne R
Merci d'avance pour l'aide que vous allez m'apporter. Je sais que ce n'est que la démarche mais je préfère vous laisser libre dans l'écriture de cette macro.
Cordialement,
A voir également:
- Macro excel: opération sur les colonnes
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
3 réponses
Bonjour
..."je préfère vous laisser libre dans l'écriture de cette macro..."
Autrement dit dém....dez vous :o)
Sans voir le contexte, difficile
pour joindre une pièce
mettre un extrait du classeur (2000 lignes maxi) sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
..."je préfère vous laisser libre dans l'écriture de cette macro..."
Autrement dit dém....dez vous :o)
Sans voir le contexte, difficile
pour joindre une pièce
mettre un extrait du classeur (2000 lignes maxi) sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
Pour faciliter la compréhension, je joins le document excel:
https://www.cjoint.com/?DFekTn6qCyo
Je vais essayer de vous proposer une macro excel dans ce cas.
Cordialement,
https://www.cjoint.com/?DFekTn6qCyo
Je vais essayer de vous proposer une macro excel dans ce cas.
Cordialement,
Re,
En effet, mon problème peut se résoudre sans macro mais le faire à chaque fois c'est long et fastidieux (10000 lignes et à faire le calcul d'un nouveau fichier chaque semaine...).
J'ai d'ailleurs réussi à la faire finalement:
Sub Calcul_système_AEDOMIA()
Dim LstRw As Long
With Sheets("SemN°52")
'LstRow = Numéro de la dernière ligne remplie en colonne A (1)
LstRw = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("$CS$4:$CS$" & LstRw).FormulaLocal = "=1,16*CQ4*(AI4-AN4)"
.Range("$CT$4:$CT$" & LstRw).FormulaLocal = "=BN4*BO4"
.Range("$CU$4:$CU$" & LstRw).FormulaLocal = "=BL4*BM4"
.Range("$CV$4:$CV$" & LstRw).FormulaLocal = "=BR4*BS4"
.Range("$CW$4:$CW$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;CS4/CT4)"
.Range("$CX$4:$CX$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;CS4/(CT4+CU4+CV4))"
.Range("$CY$4:$CY$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;(273+AI4)/(AI4-R4))"
.Range("$CR$4:$CR$" & LstRw).FormulaLocal = "=AI4-AN4"
End With
End Sub
Maintenant, mon soucis est de tracer les graphes avec un autre logiciel que Excel (gnuplot par exemple) car de même si je pouvais automatiser l'analyse des graphes, cela me ferait gagner un temps monstre (au lieu de faire une sélection de données, etc,etc....)
Si vous avez une idée la procédure à suivre pour faire un graphe à l'aide de ce logiciel à partir d'une colonne d'un fichier excel, je suis preneur.
Merci d'avance.
En effet, mon problème peut se résoudre sans macro mais le faire à chaque fois c'est long et fastidieux (10000 lignes et à faire le calcul d'un nouveau fichier chaque semaine...).
J'ai d'ailleurs réussi à la faire finalement:
Sub Calcul_système_AEDOMIA()
Dim LstRw As Long
With Sheets("SemN°52")
'LstRow = Numéro de la dernière ligne remplie en colonne A (1)
LstRw = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("$CS$4:$CS$" & LstRw).FormulaLocal = "=1,16*CQ4*(AI4-AN4)"
.Range("$CT$4:$CT$" & LstRw).FormulaLocal = "=BN4*BO4"
.Range("$CU$4:$CU$" & LstRw).FormulaLocal = "=BL4*BM4"
.Range("$CV$4:$CV$" & LstRw).FormulaLocal = "=BR4*BS4"
.Range("$CW$4:$CW$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;CS4/CT4)"
.Range("$CX$4:$CX$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;CS4/(CT4+CU4+CV4))"
.Range("$CY$4:$CY$" & LstRw).FormulaLocal = "=SI(OU(BO4<=3;BO4=0);0;(273+AI4)/(AI4-R4))"
.Range("$CR$4:$CR$" & LstRw).FormulaLocal = "=AI4-AN4"
End With
End Sub
Maintenant, mon soucis est de tracer les graphes avec un autre logiciel que Excel (gnuplot par exemple) car de même si je pouvais automatiser l'analyse des graphes, cela me ferait gagner un temps monstre (au lieu de faire une sélection de données, etc,etc....)
Si vous avez une idée la procédure à suivre pour faire un graphe à l'aide de ce logiciel à partir d'une colonne d'un fichier excel, je suis preneur.
Merci d'avance.