Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Une macro pour remplir des cellules

4 réponses
Avatar
Joël Surcouf
Bonjour à tous

C'est toujours quand on a besoin d'accomplir dans l'urgence une petite
tâche répétitive qu'on regrette de ne pas avoir appris à créer des
macros autrement qu'en les enregistrant à la volée.

Et puis une fois le besoin éloigné, - après qu'on ait tapé à la main
dix mille fois la même séquence -, on oublie les macros... jusqu'à la
prochaine fois.

Cette "prochaine fois" est arrivée !

Ca se passe dans un tableau (en fait, il y a une centaine de (gros)
tableaux, mais le problème est le même dans chacun d'eux) . Plus
précisément dans la colonne d'un tableau.

Dans la première cellule de cette colonne, il y a un chiffre.

On voudrait maintenant qu'un certain nombre de cellules de cette même
colonne (ces cellules sont contiguës et placées juste au-dessous de
cette première cellule) contienne ce chiffre incrémenté de +1.

Le nombre de cellules qui contiendront un même nombre est variable.

Exemple : la première cellule de la colonne contient "5", les 8
cellules du dessous devront contenir "9", puis les 3 suivantes
(toujours en descendant) "10", les 6 d'après "11", etc.

L'idéal serait qu'en cliquant dans une cellule vide de la colonne,
cette cellule et toutes les cellules vides qui la précèdent prennent
la valeur de la première cellulle non-vide trouvée au-dessus
incrémentée de +1.

Merci d'avoir lu jusque là.
Merci encore davantage si vous trouvez une solution.

JS

4 réponses

Avatar
AB
Bonjour,
Je n'ai pas exactement ça en magasin (je doute que quelqu'un l'ait). Mais je
te propose ci-dessous 2 macros qui pourraient t'aider.
La première incrémente automatiquement les cellules d'une colonne donnée, à
partir d'une cellule et d'une valeur de départ.
La seconde remplit les cellules au dessous d'une cellule de départ avec la
valeur située dans la cellule de départ. Ce qui peut se faire facilement à
la main, mais la macro permet de gagner du temps (je précise pour ne pas
perdre de points sur mon permis d'A.M.I.S.)
AB
PS : je ne suis qu'un pitre en VBA à côté des spécialistes qui sévissent
ici, que je supplie de retenir leurs sourires ironiques à la lecture de mon
code.
;)))



Sub Numérotation_lignes_auto()
'numérote automatiquement les lignes d'un tableau, à partir de la cellule
active
'il est possible de préciser la valeur de départ de la numérotation
On Error Resume Next 'permet déviter l'erreur due à l'instruction "i=i+1" si
l'utlisateur clique sur "annuler"
'repérage du tableau où se trouve le point d'insertion
n = ActiveDocument.Range(0, Selection.Range.End).Tables.Count
With Selection
NumeroColonne = .Information(wdEndOfRangeColumnNumber)
NumeroLigne = .Information(wdEndOfRangeRowNumber)
Lignefin = .Information(wdMaximumNumberOfRows) 'N° de la dernière ligne du
tableau
End With
Dim Message, Default, i
Message = "N° de départ ?"
Default = 1
i = InputBox(Message, , Default)
For T = NumeroLigne To Lignefin
ActiveDocument.Tables(n).Cell(T, NumeroColonne).Select
Selection.InsertAfter i
i = i + 1
Next T
End Sub
Sub Remplissage_lignes_auto()
'remplit automatiquement les lignes d'un tableau, à partir de la cellule
active
Selection.Extend
Selection.Extend
Selection.Copy
'repérage du tableau où se trouve le point d'insertion
n = ActiveDocument.Range(0, Selection.Range.End).Tables.Count
With Selection
NumeroColonne = .Information(wdEndOfRangeColumnNumber)
NumeroLigne = .Information(wdEndOfRangeRowNumber)
Lignefin = .Information(wdMaximumNumberOfRows) 'N° de la dernière ligne du
tableau
End With
For T = NumeroLigne To Lignefin
ActiveDocument.Tables(n).Cell(T, NumeroColonne).Select
Selection.Paste
Next T
End Sub


"Joël Surcouf" a écrit dans le message de news:

Bonjour à tous

C'est toujours quand on a besoin d'accomplir dans l'urgence une petite
tâche répétitive qu'on regrette de ne pas avoir appris à créer des
macros autrement qu'en les enregistrant à la volée.

Et puis une fois le besoin éloigné, - après qu'on ait tapé à la main
dix mille fois la même séquence -, on oublie les macros... jusqu'à la
prochaine fois.

Cette "prochaine fois" est arrivée !

Ca se passe dans un tableau (en fait, il y a une centaine de (gros)
tableaux, mais le problème est le même dans chacun d'eux) . Plus
précisément dans la colonne d'un tableau.

Dans la première cellule de cette colonne, il y a un chiffre.

On voudrait maintenant qu'un certain nombre de cellules de cette même
colonne (ces cellules sont contiguës et placées juste au-dessous de
cette première cellule) contienne ce chiffre incrémenté de +1.

Le nombre de cellules qui contiendront un même nombre est variable.

Exemple : la première cellule de la colonne contient "5", les 8
cellules du dessous devront contenir "9", puis les 3 suivantes
(toujours en descendant) "10", les 6 d'après "11", etc.

L'idéal serait qu'en cliquant dans une cellule vide de la colonne,
cette cellule et toutes les cellules vides qui la précèdent prennent
la valeur de la première cellulle non-vide trouvée au-dessus
incrémentée de +1.

Merci d'avoir lu jusque là.
Merci encore davantage si vous trouvez une solution.

JS



Avatar
Anacoluthe
Bonjour !

'Joël Surcouf' nous a écrit ...
Exemple : la première cellule de la colonne contient "5", les 8
cellules du dessous devront contenir "9", puis les 3 suivantes
(toujours en descendant) "10", les 6 d'après "11", etc.


Pas clair. J'aurais dit 'les 8 du dessous devront contenir "6"
mais bon on va pas discuter.
Ce genre de petit problème est facile à traiter dans Excel.
Je commencerais par là. Tableaux ? Penser tableur !
On perd souvent moins de temps à copier un tableau dans Excel,
à l'utiliser dans Excel, puis à le recopier dans Word s'il faut.

Anacoluthe
« Tout tableau se situe au confluent d'un rêve et d'une réalité. »
- Georges PEREC

Avatar
Joël Surcouf
On Thu, 19 May 2005 19:38:45 +0200, "AB"
wrote:

Je n'ai pas exactement ça en magasin (je doute que quelqu'un l'ait). Mais je
te propose ci-dessous 2 macros qui pourraient t'aider.


Merci beaucoup pour ton aide : tes macros vont m'être très utiles.

JS

Avatar
Joël Surcouf
On Fri, 20 May 2005 14:49:30 +0200, Anacoluthe
wrote:

Pas clair. J'aurais dit 'les 8 du dessous devront contenir "6"
mais bon on va pas discuter.


Oui, j'ai changé au dernier moment les chiffres de mes exemples,
mais j'ai oublié celui-là...

JS