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 :

VBA-E : Copier des valeurs et les additionner si une cellule est non vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut VBA-E : Copier des valeurs et les additionner si une cellule est non vide
    Amis codeurs bonsoir !

    Je vous sollicite aujourd'hui pour une question particulière. Mon fichier se présente sous la forme:

    Cellule A1 : 100
    Cellule A2: (Vide)
    Cellule A3: (Vide)
    Cellule A4: (Vide)
    Cellule A5: 300
    Cellule A6: 500
    Cellule A7: (Vide)

    Cellule B1: 5
    Cellule B5: 2

    Vous l'aurez sans doute compris, je souhaite:
    - Copier la valeurs en A1, le nombre de fois qu'elle est indiqué dans B1, que la A2 soit copier autant de fois qu'en B2 et simplement coller à la suite.
    - Additionner la valeur en A1 avec une autre valeur qui serait en A tout en respectant le nombre indiqué en B

    Le résultat finale de l'exemple ci-dessus devrait donner:

    Cellule A1 : 100
    Cellule A2: 100
    Cellule A3: 100
    Cellule A4: 100
    Cellule A5: 400 (Simplement il me reste 1 jour avec 100 mais on a un nouveau chiffre 300 d'une durée de 2 jours donc pour le premier 400)
    Cellule A6: 800 (Ici la valeurs 100 a atteint son quotas de 5 jours donc on retombe a 300 (dont il reste 1 jours aussi) et on l'ajoute au 500 donc 800)
    Cellule A7: (Vide)

    Merci d'avance pour votre aide !

  2. #2
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    Bonjour,

    Je pense avoir saisi ton problème.

    Tu peux tester ce code et l'adapter par la suite si tu as d'autres contraintes.

    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 Rempl()
     
     
    Derligne = Range("A65000").End(xlUp).Row
     
    For i = 1 To Derligne
    If Not IsEmpty(Cells(i, 2)) Then
    Cells(i, 3).Value = Cells(i, 1).Value
    End If
    Next
     
    For i = 1 To Derligne
     
    x = Cells(i, 2).Value - 1
     
    If Not IsEmpty(Cells(i, 1)) Then
     
    For j = 1 To x
    Cells(i + j, 1).Value = Cells(i + j, 1).Value + Cells(i, 3).Value
    Next
    End If
     
    If x = 1 Then
     
    i = i + x
     
    Else
     
    i = i + x - 1
    End If
     
    Next

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Bonjour Kiouane,

    Je teste ce code et te tiens informé.

    Merci pour ta sollicitude

    EDIT: je viens de le tester, ça m'aide grandement. Je vais tenter d'y apporter des modifications pour que ça colle parfaitement.

    Excellent week-end à toi

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    J'ai un nouveau problème avec ton code.
    On dirait que Excel limite la copie...Par exemple, une valeur doit être copier x fois, donc ta variable j = 1 to x devrait être juste maiis au bout de 672 fois exactement ça s'arrête... as tu une idée pk ?

    merci

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    EDIT: j'ai remarqué que ç me déduit 470 fois à chaque fois, par exemple si une valeur doit être copié 940 fois eh bien elle le sera 470 fis...

Discussions similaires

  1. [Vxi3] Lister l'ensemble des valeurs d'un objet dans une cellule
    Par Tirry dans le forum Webi
    Réponses: 4
    Dernier message: 02/12/2015, 10h02
  2. [XL-2010] Copier le contenu d'une cellule si la cellule est non vide
    Par Bleue dans le forum Conception
    Réponses: 1
    Dernier message: 14/03/2014, 15h38
  3. [VBA-E] Copier des données d'un tableau a une feuille
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/04/2007, 14h09
  4. [VBA-E]:copier des cellules en gardant les fomules
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2006, 10h53

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