IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Incrémentation des données dans une feuille [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Novembre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2007
    Messages : 134
    Points : 106
    Points
    106
    Par défaut Incrémentation des données dans une feuille
    Bonsoir à tous,
    Je recherche comment créer une macro sous Excel qui me permettrait d'incrémenter la valeur des cellules selon le nombre saisie dans une autre cellule
    Ex.
    si je saisis 15 en c5
    Dans la partie "Détail" il me rajoute 14 lignes
    qui auront dans les cellules
    C12 = c11+31 et ainsi de suite jusqu'à la dernière ligne.
    D12 = d11+1 et ainsi de suite
    E12; la reproduction de la formule saisie en E11
    Cela m'éviterait de faire du tirer / glisser à chaque fois que les informations changent

    Je ne sais même pas si cela est possible
    Mais pour mieux comprendre la demande, ci-joint une copie du fichier.

    Merci d'avance pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    vite fais un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub h()
    Duree = Cells(5, 3).Value
    PeriodeDepart = Cells(11, 3).Row
    IndexPeriode = Cells(11, 3).Value
    IndexMois = Cells(11, 4).Value
     
    For i = 1 To Duree - 1
        Cells(PeriodeDepart + i, 3) = Format(DateAdd("m", i, IndexPeriode), "mmmm-yy") 'incrémente ton mois
     
        Cells(PeriodeDepart + i, 4) = IndexMois + i 'incrémente NB_Mensual
     
        Cells(PeriodeDepart + i - 1, 5).Activate
        Selection.Copy
        Cells(PeriodeDepart + i, 5).Activate
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False 'copie formule
     
        Cells(PeriodeDepart + i - 1, 6).Activate
        Selection.Copy
        Cells(PeriodeDepart + i, 6).Activate
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False 'copie formule
     
        Cells(PeriodeDepart + i - 1, 7).Activate
        Selection.Copy
        Cells(PeriodeDepart + i, 7).Activate
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False 'copie formule
     
    Next i
     
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Novembre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2007
    Messages : 134
    Points : 106
    Points
    106
    Par défaut
    Bonjour QuestVba,

    Merci de la réponse, cela fonctionne bien.
    J'aimerais savoir s'il est possible de réinitialiser la partie "DETAIL"
    à chaque saisie de nouvelles données
    Cela permettrait d'avoir un tableau en adéquation avec les données saisies.
    J'ai constaté que si je saisis une durée inférieure à la valeur précédente.
    Dans la partie détail, l'incrémentation précédente reste visible.

    En plus serait-il possible d'avoir la cellule "Total XX mois " sur la ligne +1 suivant les dernières données incrémentées?

    Une fois de plus, Merci pour votre aide

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    En utilisant l'évènement Change de la feuille (code à mettre dans le module de ta feuille)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastLig As Integer, m As Integer
     
    If Not Intersect(Target, Range("C5")) Is Nothing Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        If MsgBox("Voulez vous réinitialiser la feuille?" & vbNewLine & "Les données détail seront effacées", vbDefaultButton2 + vbOKCancel) = vbOK Then
            LastLig = ActiveSheet.UsedRange.Rows.Count
            If LastLig > 11 Then Rows(11 & ":" & LastLig).ClearContents
     
            m = Val(Range("C5"))
            If m > 0 Then
     
                With Range("B11:B" & m + 10)
                    .Formula = "=EDATE(TODAY(),ROW()-11)"
                    .NumberFormat = "mmm-yy"
                    .Value = .Value
                End With
     
                With Range("C11:C" & m + 10)
                    .Formula = "=ROW()-10"
                    .Value = .Value
                End With
     
                Range("B" & m + 12).Value = "Total " & m & " mois"
                Range("E" & m + 12).Resize(1, 3).Formula = "=SUM(E11:E" & m + 10 & ")"
            End If
        Else
            Application.Undo
        End If
        Application.EnableEvents = True
    End If
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Novembre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2007
    Messages : 134
    Points : 106
    Points
    106
    Par défaut
    Bonjour mercatog,

    Merci de code, il fonctionne bien, malgré le décalage des mois en b11 et en c11, il m'affiche la date à partir de 1900.
    Après modification, la date s'affiche à partir de c11
    cela me convient,

    Une de fois de plus merci de pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Rechercher et lister des données dans une feuille depuis un formulaire
    Par UZeInDub dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2015, 09h49
  2. [XL-2010] Problème de suppression des données dans une feuille
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/12/2014, 10h16
  3. [XL-2003] Copié des données dans une feuille vers une autre
    Par guillaumepops dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2012, 15h43
  4. Réponses: 2
    Dernier message: 09/12/2009, 17h51
  5. [Excel-07] prendre des données dans une feuille de calcul
    Par HqSeO dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/01/2009, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo