> Tous les forums > Forum Bureautique
 Macro oOo fin de tableau somme
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
lazzzy
  Posté le 28/11/2009 @ 10:58 
Aller en bas de la page 
Astucien

Bonjour,

cherchant à réaliser une macro "manuelle" rudimentaire et concernant quasi-exclusivement la mise en forme, je bute sur un problème de fin de tableau et de somme.

En fait, ce tableau présente une série de colonnes avec des critères, et pour chacun d'entre eux, il y a soit 1 soit rien dans les cellules. Le tableau est évolutif, chaque jour il compte un nombre supplémentaire et imprévisible de lignes, mais tjs avec les mêmes types de données. Le nbre de colonnes est définitivement fixe : AX. La macro doit agir de manière uniforme sur ces tableaux.

Admettons qu'au jour j, le tableau fasse 50 lignes.

Desription de l'enregistrement de la macro : Je me positionne sur la cellule A1, j'appuie sur CTRL + FIN, ce qui amène le curseur à la cellule AY:50. Ensuite j'appuie sur la touche "Origin" (ou "début" selon le clavier), ce qui ramène à la position A50. Enfin j'appuie sur la flèche "bas" et on est sur A51, soit la (dernière + 1) ligne.

L'objectif à ce stade, est de calculer la somme des données de la colonne A (incluant donc des 1 ou des cellules vides) : somme (A2:A50). Une fois ce total calculé, je sélectionne la cellule A51 et la prolonge jusqu'à la cellule AX:51 de sorte à ce que chaque colonne ait son total.

Et c'est là que ça ne va pas, car je n'arrive pas à faire le choix de la plage de données autrement qu'en sélectionnant la dernière ligne jusqu'à la deuxième (la première étant les titres) ; du coup la macro enregistre la plage A2:A50

Si j'essaye d'exécuter cette macro sur un tableau au jour j+2 par exemple, il calculera la somme pour la même plage alors que le tableau aura un nbre de lignes supérieur à 50. Et de plus le total sera inséré anarchiquement à la ligne 51 dans un tableau comportant plus de 51 lignes.

Je ne sais pas si j'ai été assez clair dans la description, mais l'idée est là : trouver une astuce pour rejoindre la dernière ligne d'un tableau

Il est inutile de vous préciser que je ne sais pas programmer de macro, donc s'il y a moyen d'échapper à cette contrainte c'est un plus.

Merci

Publicité
mjd535
 Posté le 28/11/2009 à 11:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour lazzzy,

J'avoue ne pas avoir bien compris. Un exemple serait plus parlant.

Je te donne deux pistes :

Pour ce qui me concerne, lorsque je veux effectuer le total d'une colonne à nombre de lignes variables, j'utilise la formule suivante :

Si le total s'effectue sur la même feuille :

=SOMME(A2:A65536)

Si le total s'effectue sur une feuille différente :

=SOMME(nom de la feuille.A2:A65536)

Si tu veux récupérer la valeur de la dernière cellule d'une colonne :

=INDEX(nom de la feuille.A2:A65536;NB(nom de la feuille.A2:A65536);1);

65536 est le nombre maximum de lignes que peut accepter une feuille calc.

J'espère avoir approché un peu.

Sinon tu nous permettras d'y voir un peu plus clair.



Modifié par mjd535 le 28/11/2009 12:24
lazzzy
 Posté le 28/11/2009 à 12:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ok merci, alors pour être plus concret, j'ai fait un exemple http://www.cijoint.fr/cjlink.php?file=cj200911/cij5NqbfR0.ods : "données brutes" et "résultat attendu" en deuxième onglet.

sur la mise en forme :

- centré, milieu

- 1ere ligne de titres : orientation 90°, gras

- largeur de colonnes "optimale" afin que l'ensemble tienne sur la partie visible, sans avoir à scroller latéralement

- fenêtre fixée en C2

Le problème avec la macro : obtenir à la dernière ligne du tableau - sachant qu'elle est inconnue à priori - cette série de totaux en gras avec le titre "Tot"

lazzzy
 Posté le 29/11/2009 à 17:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Par rapport à tes deux pistes, je ne vois pas comment et surtout où insérer la formule

en fait cette macro est censée faciliter le travail de lecture de ces chiffres, à la base comme tu peux le voir c'est très étendu et il faut copieusement scroller.

D'où l'idée d'insérer ce total juste sur la dernière ligne du tableau

Je n'ai pas réussi à tirer qquechose de la valeur de la dernière cellule

procole
 Posté le 29/11/2009 à 17:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour

A mon avis il faut partir d'un modèle de feuille avec une ligne entière nommée à laquelle tu pourras faire référence dans une macro.

Ensuite tes nouvelles lignes tu les créeras non pas en dessous , mais au dessus de cette ligne nommée qui restera toujours la dernière

Une autre solution consiste à rechercher quelle est la première ligne vide . ça sera forcément ta dernière ligne. J'avais employé cette méthode il y a déjà quelques années quand on pouvait faire des macros sous Excel sans le basic. ça fonctionnait bien

C'est certainement faisable avec du open office basic , mais là ne compte pas sur moi pour t'aider {#}

mjd535
 Posté le 29/11/2009 à 17:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

salut lazzy,

Je viens de rentrer, excuse mon silence.

J'avoue n'avoir pas très bien compris ton tableau, d'autant plus que je n'ai pas accès aux lignes du haut.

Tu ne peux pas effectuer le total en question sur une autre feuille ?

Tu pourrais obtenir le total de toute la colonne de la ligne 2 à la ligne x (jusqu'à 35536) quel que soit le nombre de lignes et en évitant de scroller la page.

EDIT :

Je lis le post de procole (Salut procole). Sa piste amène sur un terrain où je ne peux aller. Trop pointu pour moi.

A toutes fins utiles, je te donne l'url DU forum OOo : http://user.services.openoffice.org/fr/forum/index.php?sid=e96297be24581882cee8040224afd047.

Ce n'est pas pour botter en touche. Je peux développer ma proposition.



Modifié par mjd535 le 29/11/2009 17:56
lazzzy
 Posté le 29/11/2009 à 19:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

OK pour l'idée de procole, mais le souci c'est que la récupération du fichier est automatisée, ainsi que son ouverture (après exécution également automatique de la macro) ; la seule chose que je peux faire en amont c'est la macro puisqu'elle se situe dans le classeur de macros personnelles, et s'appelle indépendamment du contenu de la feuille.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
184,90 €Processeur AMD Ryzen 5 5500 + carte mère MSI B450 Tomahawk Max II à 184,90 €
Valable jusqu'au 20 Mai

RueDuCommerce fait une promotion sur un pack comprenant le processeur AMD Ryzen 5 5500 et la carte mère MSI B450 Tomahawk II qui passe à 184,90 € alors qu'on le trouve ailleurs à partir de 240 €. 

Le processeur pour PC de bureau AMD Ryzen 5 5500 propose 6 coeurs natifs et 12 coeurs logiques pour un traitement multitâche agréablement fluide. Grâce à sa fréquence native élevée 3.6 GHz et à son mode Turbo Core ajustant la puissance en fonction des besoins (jusqu'à 4.2 GHz), le CPU AMD Ryzen de nouvelle génération délivre des performances exceptionnelles dans tous les domaines : Jeux vidéo, multitâche intensif, édition vidéo, modélisation 3D et bien plus encore. Le cache L3 de 16 Mo permet en outre le traitement ultrarapide d'un grand nombre d'instructions grâce à des latences réduites. Fourni avec un système de refroidissement.

Style militaire et solution thermique optimisée, la carte mère MSI B450 TOMAHAWK MAX II promet des performances et une efficacité remarquables. Compatible avec les processeurs AMD Ryzen sur socket AMD AM4, elle prend en charge de la mémoire vive DDR4, des cartes graphiques PCI-Express 3.0 ou encore des disques SATA 6Gb/s et M.2 (SATA et PCIe).


> Voir l'offre
89,99 €Onduleur Eaton 3S 700 FR (8 prises, 2 USB, 700VA/420W) à 89,99 €
Valable jusqu'au 20 Mai

Amazon fait une promotion sur l'onduleur Eaton 3S 700 FR qui passe à 89,99 € livré gratuitement alors qu'on le trouve ailleurs autour de 110 €. Cet onduleur de 700VA/ 420 Watts offre 4 prises protégées et ondulées, 4 prises protégées et 2 prises de charge USB (2A). La batterie est remplaçable et offre une autonomie de 16 minutes. Son port USB et le logiciel d'arrêt fourni permet d'enregistrer automatiquement vos données et fermer vos applications avant que vos batteries ne soient épuisées.


> Voir l'offre
68,99 €SSD Crucial P5 Plus 500 Go (3D NAND, NVMe, PCIe 4.0, M.2, 6600 Mo/s) à 68,99 €
Valable jusqu'au 20 Mai

Amazon fait une promotion sur le SSD Crucial P5 Plus 500 Go (3D NAND, NVMe, PCIe 4.0, M.2) qui passe à 68,99 € livré gratuitement. On le trouve ailleurs à partir de 100 €. Ce SSD offre des vitesses de lecture/écriture séquentielle allant jusqu’à 6600/ 3 000 Mo/s. Il est garanti 5 ans.

Cette version Plus est compatible PCIe 4.0. Vous pouvez donc aussi l'utiliser avec la console de jeux PS5.


> Voir l'offre

Sujets relatifs
macro afficher masquer lignes tableau dans word 2010
[Excel 2007] Macro : Sélection d'un tableau selon sa longueur variable
macro pour trier un tableau et effacer les lignes sans saisie
Format un textbox et faire une somme par macro
Excel : Macro pour tableau croisé dynamique
Créer un tableau excel avec macro
Macro pour ajouter une ligne à la fin d'un tableau
Excel ,impression tableau
2 pages par feuille dans macro excel
compter lignes d'un tableau dont toutes les cellules sont en couleur
Plus de sujets relatifs à Macro oOo fin de tableau somme
 > Tous les forums > Forum Bureautique