Recopier tous les nombres d'une plage de nombres ds plusieurs colonnes

Bonjour à tous,

Dans mon fichier, en colonne I, j'ai un 1er nombre qui représente le 1er nombre d'une plage de numéros. En colonne J j'ai un 2nd nombre qui correspond au dernier nombre de la plage de numéros.

Je souhaiterais, en colonnes K et suivantes, écrire chaque nombre intermédiaire en partant du 1er jusqu'au dernier (autant de colonnes que de nombres).

merci à tous pour votre aide.

TyrosCB

bonsoir

=SI(COLONNE(A:A)<MAX($I1:$J1);MAX($I1+COLONNE(A:A)-1);"")

atirer vers la droite

cordialement

Bonsoir tulipe_4,

merci de ta réponse. J'ai fait le test sur Excel mais ça ne fonctionne pas... peut-être parce que la 1ère colonne à remplir est la colonne K (je ne sais pas à vrai dire). De plus il faudrait que ça se fasse en automatique via VBA.

En tous cas, merci déjà de t'intéresser à mon problème.

Cordialement

Bonsoir TyrosCB, Tulipe_4, le forum,

Un essai par macro....de ce que j'ai compris.....

6classeur1.xlsm (20.27 Ko)

Cordialement,

re

voila

cordialement

bonsoir xorsankukai, re- tulipe_4,

tout d'abord merci de vos propositions.

xorsankukai : cela ne répond pas tout à fait à ce que je cherche, car je n'ai pas de nombres en colonne A

tulipe_4 : de même, je recherche plutôt un code VBA. Si je suis ton principe de tirer vers la droite, la formule fonctionne même au-delà du dernier nombre.

je vous joins un fichier, car je pense que c'est de ma faute je n'ai pas été assez explicite dans ma demande. J'espère que vous pourrez m'apporter la solution que je recherche.

J'ai jeté un oeil à vos formule et code VBA : chapeau car je serais totalement incapable de faire l'un ou l'autre.

D'avance merci

Re,

Nouvel essai....

7classeur2.xlsm (19.38 Ko)

Cordialement,

Salut TyrosCB,
Salut les as,

seule inconnue pour moi : y a-t-il des formules en [I1:J1] comme tu le dis ou pas ?
Si ce sont des formules, il faudra remonter à la source du changement pour que cela fonctionne...

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, [I1:J1]) Is Nothing Then
    If [K1] <> "" Then Range("K1").Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column) = ""
    If WorksheetFunction.CountA([I1:J1]) = 2 Then _
        [K1] = [I1]: _
        [K1].Resize(1, [J1] - [I1] + 1).DataSeries rowcol:=xlRows, Type:=xlDataSeriesLinear, step:=1, stop:=[J1]
End If
'
End Sub


A+

bonjour xorsankukai, bonjour curulis57, bonjour le forum,

vos codes, de l'un et l'autre, fonctionnent parfaitement, et c'est ce que je voulais. Un grand merci.

Par contre ça fonctionne seulement si les nombres sont inscrits en I1 et J1 (et là je me rends compte que c'est ce que je vous demandais ni plus ni moins dans le fichier test que j'avais joint, et vous auriez raison de penser que je n'exprime pas ce que je souhaite vraiment).

Donc, mea culpa et SVP, comment faire pour que ça fonctionne systématiquement avec le dernier numéro de ligne utilisé ? (car j'ai de nombreuses lignes dans mon fichier)

merci de votre aide

Bonjour à tous,

@TyrosCB :

Du coup, tu souhaites agir uniquement sur la dernière ligne où sur toutes les lignes de 1 à la dernière ?

Cordialement,

bonjour xorsankukai,

je souhaite agir uniquement sur la dernière ligne créée. Donc les cellules concernées seront "I_x, J_x, K_x (pour la 1ère colonne), et suivantes_x jusqu'à atteindre la valeur de J_x

x étant le N° de ligne au moment là.

Merci

Cordialement,

Salut TyrosCB,
Bien le bonjour Xorsankukai,

comme je comprends l'affaire, mais je peux évidemment me tromper, comme dans le fichier-exemple, [I1] démarrait à 5, il doit y avoir là une cellule au contenu fixe (titre, en-tête...) constituant la 1ère "dernière" ligne utilisée : c'est le mot qu'il emploie.
J'imagine donc qu'il veut un compteur du nombre de lignes utilisées par sa feuille.

Le code ci-dessous calcule donc ce nombre et en affiche la série au moindre changement dans la feuille.

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
[E1].Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Delete shift:=xlToLeft
iRow = UsedRange.Rows.Count
With IIf(iRow <= 5, [E1], [I1])
    .Value = IIf(iRow <= 5, 1, 5)
    .Resize(1, IIf(iRow <= 5, 5, iRow)).DataSeries rowcol:=xlRows, Type:=xlDataSeriesLinear, step:=1, stop:=IIf(iRow <= 5, 5, iRow)
End With
With [I1]
    .Interior.Color = IIf(iRow <= 5, RGB(185, 220, 230), RGB(195, 215, 155))
    .BorderAround LineStyle:=xlContinuous, Weight:=xlMedium
End With
'
Application.EnableEvents = True
'
End Sub
8tyroscb.xlsm (18.15 Ko)


A+

Re,

Bonjour curulis57,

De ce que j'ai compris....

Bon dimanche ,

@ xorsankukai : merci infiniment c'est exactement ce que je cherchais. Tu me sauves la mise.

@ curulis57 : je crois que j'utiliserai ton code pour une autre application.

Merci à vous deux, ce post est résolu.

Vu mon niveau plus que moyen, je ne vais pas hésiter à vous soumettre un autre problème (et oui, quand on est débutant comme moi, on a que des problèmes ☺)

bon dimanche

bonsoir le forum,

petit casse-tête pour moi (encore un !)

Dans le fichier joint je souhaite, à l'aide du formulaire "Userform1" :

1. ajouter tout nouveau bénévole dans la ligne 1, à la suite des bénévoles déjà inscrits dans la feuille "bénévoles"

2. ajouter un dessert à un bénévole (existant déjà sur la liste en ligne 1 ou à créer (point 1.) )

ceci à l'aide peut-être des Inputbox afin d'alimenter la synthèse dans la feuille "synthèse"

merci de votre aide

bonne soirée

7assoc-aapa.xlsm (14.49 Ko)

Bonjour à tous,


@TyrosCB: vu qu'il s'agit d'un nouveau sujet, tu aurais du clôturer celui-ci (puisque tu considère que ton problème est résolu) et en ouvrir un nouveau car le titre ne correspond plus et tu vas te priver de l'intervention d'autres membres.


Je te poste tout de même une proposition....mais il y a certainement moyen d'optimiser où de faire plus simple.......

J'ai virer tes boutons "Ajout"...

Principe de fonctionnement:

  1. soit tu choisis dans la(les) liste(s) déroulante(s)
  2. soit tu saisis directement dans la(les) combobox et tu fais entrée :
  • si la saisie figure dans la liste, on continue.
  • sinon, on te propose de la rajouter (si oui, on rajoute et on continue, ; si non, on abandonne et il faut recommencer la saisie).

Les 4 champs doivent être obligatoirement remplis.

A tester.....

Cordialement,

bonsoir xorsankukai, bonsoir le forum,

j'ai effectivement essayé de clôturer ce sujet mais je dois avouer que je ne sais pas faire (ça non plus, décidément). Je suis preneur pour la marche à suivre.

Merci pour ton attention sur mon fichier. Ce que tu me proposes n'est pas tout à fait ce que je recherche. En fait, mes ami(e)s bénévoles et moi préparons des petits plaisirs pour nos papys et nos mamies et j'ai commencé à établir une liste dans mon fichier initial. Le problème est que chaque bénévole a ses spécialités (uniquement les desserts placés sous son nom dans sa colonne) et je ne peux pas demander à un bénévole de préparer un dessert qu'il ne sait pas faire. Le problème aussi c'est que je ne me souviens pas toujours de qui sait faire quoi.

Ainsi, j'ai la liste des bénévoles en ligne (sur la ligne 1) et sous chaque nom les desserts qu'ils savent faire.

Ce que je voudrais c'est :

1. faire grandir la liste des bénévoles, en y ajoutant un membre en ligne 1 après le dernier (la 1ère case vide) ; d'où le bouton "Ajouter un bénévole" dans le formulaire

2. pouvoir ajouter un dessert à n'importe quel bénévole (dans une colonne, à la suite des desserts déjà inscrits) ; d'où le bouton "Ajouter un dessert" dans le formulaire. Cet ajout peut concerner un bénévole déjà sur la liste, ou bien un nouveau bénévole que l'on viendrait de créer.

Par exemple, en cellule I1 j'aimerais ajouter Louis A. (c'est moi ☺) et en cellules I2, I3, I4 et suivantes les desserts que je sais faire (un bon gâteau aux carottes c'est délicieux), et tout ceci en utilisant le formulaire (car je voudrais garder une certaine discrétion entre les différents bénévoles).

Voilà, j'espère que j'ai été assez clair. En tout cas, merci xorsankukai de ta généreuse participation. Et j'espère faire grandir cette liste de bénévoles ;-)

9assoc-aapa.xlsm (14.49 Ko)

xorsankukai, j'ai trouvé pour mettre le post en résolu. C'est fait. Comme quoi parfois il suffit de chercher un peu.

Mais je ne serai pas aussi efficace avec le code VBA

Bonjour TyrosCB,

Ce que tu me proposes n'est pas tout à fait ce que je recherche.

Le problème est que chaque bénévole a ses spécialités (uniquement les desserts placés sous son nom dans sa colonne) et je ne peux pas demander à un bénévole de préparer un dessert qu'il ne sait pas faire.

Le problème aussi c'est que je ne me souviens pas toujours de qui sait faire quoi.

Les feuilles "lieux" et "bénévoles" peuvent être masquées.

A tester....

Cordialement,

bonsoir xorsankukai, bonsoir le forum,

ce que tu me proposes en fait, est encore mieux que ce que j'avais prévu de faire, donc un grand merci tu es formidable. Je vais bien entendu utiliser ton fichier.

Je l'ai déjà à plusieurs reprises le long de ce post, mais il faut rendre à César ce qui est à César : bravo à toi et à ceux qui, comme toi, prennent sur leur temps pour aider des débutants comme moi, sans rien demander en contrepartie. Je te fais preuve de toute ma reconnaissance.

Merci, merci, merci.

Post résolu.

bonne soirée

Rechercher des sujets similaires à "recopier tous nombres plage colonnes"