Macro pour Calc

Bonjour,

  Comme je ne suis pas un pro des macros, je pose le problème :

    Soit une valeur dans une cellule (par exemple 48 dans C3).
    À l'aide d'une macro LibreOffice je souhaite prendre cette valeur
    comme limite haute et, dans une liste en colonne, énumérer de 1
    jusqu'à cette valeur (par exemple de D3 jusqu'à D51, énumérer 1 à 48).

    Merci d'avance pour votre obligeance.

Bonsoir Michel

Michel ANDREU-2 wrote

  Comme je ne suis pas un pro des macros, je pose le problème :

    Soit une valeur dans une cellule (par exemple 48 dans C3).
    À l'aide d'une macro LibreOffice je souhaite prendre cette valeur
    comme limite haute et, dans une liste en colonne, énumérer de 1
    jusqu'à cette valeur (par exemple de D3 jusqu'à D51, énumérer 1 à 48).

Pourquoi passer par une macro si tu n'en es pas familier ?
Ci-joint un exemple sans macro pouvant peut-être répondre au
besoin (peut-être car tu n'as sans doute pas expliqué tous les
tenants et aboutissants).

Le principe est de générer la série complète de nombres dans la
colonne D (de 1 à 100 dans l'exemple). Pour cela on utilise la fonction
LIGNE qu'on valide en matriciel par Ctrl+Maj+Entrée.

Ensuite il suffit de masquer les nombres supérieurs à la valeur entrée
en C3 ce qu'un formatage conditionnel simple fait très bien. On applique
le format de nombre ;;; cf. la faq
https://wiki.documentfoundation.org/FR/FAQ/Calc/144

Si tu dois utiliser la colonne D dans des calculs, il suffira de n'utiliser
que ceux inférieurs à C3 (car les nombres sont masqués mais toujours
présents de 1 à 100 en D).

GénérerNombres.ods
<http://nabble.documentfoundation.org/file/n4087473/GénérerNombres.ods>

Cordialement
Pierre-Yves

Merci Pierre-Yves, j'expérimente et te tiens au courant mais pas avant ce soir (des urgences à régler).

Cordialement.
Michel

Bonsoir Pierre-Yves,
En effet, la question est un peu trop succincte. La voici reformulée :

    1) Soit un nombre N compris entre 40 et 100 ; par exemple 46 en
    cellule C3
    2) Créer une liste énumérée de 1 à N, en colonne. Par exemple de D3
    à D48 pour la valeur 46
    3) Cette liste doit-être uniquement composée de nombres (et non de
    formules)

        RAISON : Il s'agit d'une liste d'équipes devant se rencontrer.
        Cette liste est donc la base de tris et de calculs ultérieurs.
        Par exemple : la liste est triée aléatoirement, puis scindée en
        deux parties égales (nécessité d'un nombre pair ; si ce n'est
        pas le cas on ajoute 1 au nombre primitif). Les équipes se
        rencontrent à 5 reprises sans qu'aucune ne puisse rencontrer 2
        fois un équipe adverse. NOTA : ces tris, procédures et calculs
        divers existent déjà.

Quoique ne maîtrisant pas suffisamment la conception de macros, il m'arrive fréquemment d'utiliser des macros enregistrées ; simplifiées et rendues plus rationnelles ensuite ; c'est une manière de se familiariser avec leur fonctionnement et leur syntaxe. C'est pourquoi je proposais cette solution qui me paraissais plus logique..

Bien cordialement.
Michel

Bonsoir

Michel ANDREU-2 wrote

    3) Cette liste doit-être uniquement composée de nombres (et non de
    formules)

Ok, ci-joint un exemple. Sélectionner la cellule contenant le nombre
"de référence" (pas nécessairement en C3) et lancer la macro.

Nota: la macro travaille "sans avertissement" (si les cellules cible
contiennent déjà quelque chose ou non).

GénérerNombres.ods
<http://nabble.documentfoundation.org/file/n4088108/GénérerNombres.ods>

Cordialement
Pierre-Yves

Merci Pierre-Yves,

Avec cette macro je vais pouvoir me débrouiller. Elle correspond tout à fait à ce que je souhaite.

Bien cordialement et bonne soirée.

Michel