Code excell - débutante

Sophiedgx -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Jeune débutante sur Excell, besoin de votre aide !

Sur une feuille Excell, j'ai deux colonnes. La première (de A1 à A83) contient des nombres (un âge de 18 à 100 ans), la deuxième colonne (de B1 à B83) contient le nombre de fois que revient cet âge dans ma population. Je voudrais créer, à coté, une colonne qui reprend les tous les âges les uns après les autres.

Exemple, si :
A1 B1
18 0
19 0
20 0
21 5
22 11
(etc)

Alors je voudrais que ma colonne ressemble à :
21
21
21
21
21
11
11
11
11
(etc avec 22x11 au total)

Désolée si j'ai du mal à expliquer et à me faire comprendre... Avez-vous un code pour cela ?

Merci, Sophie :)

3 réponses

  1. Utilisateur anonyme
     
    Un toute logique, on peut présumer que les "21" de la colonne "C" devront êtres alignés avec les "21" de la colonne "A" (ce qui n'est pas ton exemple), sinon, ça n'aurait aucun sens; et ce qui revient à dupliquer la colonne "B".
    Il faudrait clarifier ta demande.
    0
  2. Sophiedgx Messages postés 1 Statut Membre
     
    Bonjour, je vous mets une image pour comprendre..

    Si 5 personnes ont 21 ans, je voudrais que le nombre 21 se retrouve dans 5 cellules à la suite. Ensuite, si 11 personnes ont 22 ans, je voudrais qu'à la suite des 21 se trouve le nombre 22, 11x d'affillée dans 11 cellules différentes, etc...
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Faire Alt F11 sur la feuille concernée pour accéder à l'éditeur.

    La macro se déclenchera au double clic dans la colonne B

    mettre ce code:

    Option Explicit
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
     Dim i As Integer
     Dim DerniereLigneUtilisee As Long
     DerniereLigneUtilisee = Range("C" & Rows.Count).End(xlUp).Row
     If Target.Value = 0 Then Exit Sub
     For i = 0 To Target.Value
    Range("C" & DerniereLigneUtilisee + i) = Range("A" & Target.Row)
    Next i
    End If
    End Sub
    
    


    Voilà

    0