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]Création de boucle


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut [VBA-E]Création de boucle
    Alors rebonjour à tous
    Je vais mieux expliquer ce que je cherche a faire
    Un utilisateur rempli sa feuille de distribution (j'ai tout supprimé pour ne pas vous enquiquinez avec tout ca)
    Au final sont importantes que les cellules: D8 jusqu'a D12, la cellule D98
    Je cherche une programmation permettant de recopier les valeurs de ces cellules dans mon tableau récapitulatif dans la feuille "recap_distri" en appuyant sur le bouton de commande que j'ai ajouté
    comment ca marche:
    lorsque l'utilisateur appuye sur ce bouton les données doivent se reporter dans les cellules du tableau correspondant, en fonction du numéro de période qui se situe dans la cellule U4 de la premiere feuille pour qu'elles aillent dans la bonne colonne du tableau de la 2° feuille.
    Jusqu'a présent j'ai fais une programmation de la sorte:

    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
    34
    35
    36
    37
    Private Sub CommandButton1_Click()
     
    If Sheets("recap_distri").Range("D7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("D9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("E7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("E9").Value = Sheets("distri").Range("D98").Value
     
    End If
    If Sheets("recap_distri").Range("F7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("F9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("G7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("G9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("H7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("H9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("I7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("I9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("J7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("J9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("K7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("K9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("L7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("L9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("M7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("M9").Value = Sheets("distri").Range("D98").Value
    End If
    If Sheets("recap_distri").Range("N7").Value = Sheets("distri").Range("U4").Value Then
    Sheets("recap_distri").Range("N9").Value = Sheets("distri").Range("D98").Value
    End If
    End Sub
    Comme vous le voyez c'est une programmation lourde et surtout incomplete mais ca va etres tres fastidieux à faire si je prend l'ensemble des choses que je dois copier vu que je peux autant travailler sur 10 periodes que sur 150.
    Ce que je cherche à faire c'est une programmation qui dit que suivant le chiffre qu'il y a marqué en u4, les données se recopissent dans la colonne correspondante du tableau.

    Et c'est pourquoi je vous prie de m'aider car je suis très limité en VBA, j'ai essayé de programmer des recherches colonnes, et ca ne marche pas.
    Donc je ne vous demande pas de me macher le travail mais juste de me montrer comment faire pour ce probleme.
    Car jaurais besoin de ce type de programmation pour l'ensemble de mon logiciel

    Contrairement à ce qui était dit, ca fait depuis ce matin que je tente des programmations, seulement je ne voulais pas vous les montrer dans la mesure où elles ne marchent pas
    Merci pour votre aide, qui me sera précieuse
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour

    essais d utiliser une boucle for i = 1 to j
    tu definie j suivant un critere (derniere ligne non vide de la col 7 par ex)
    puis tu fait tourner ta boucle et tu lis le faq pour l apprentissage des boucles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
    for i = 4 to 10
    If Sheets("recap_distri").cells(i,7).value = Sheets("distri").Range("U4").Value Then Sheets("recap_distri").cells(i,9).value = Sheets("distri").Range("d98).Value 
    next i

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu peux tester ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim fl1 As Worksheet, fl2 As Worksheet
    Dim Test, maVal, NoCol As Integer
    Set fl1 = Sheets("recap_distri")
    Set fl2 = Sheets("distri")
    Test = fl2.Range("U4").Value
    maVal = fl2.Range("D98").Value
    For NoCol = 4 To 14
        If fl1.Cells(7, NoCol) = Test Then
            fl1.Cells(9, NoCol) = maVal
        End If
    Next
    End sub
    Désolé, je n'avais pas vu la réponse de Patbou

Discussions similaires

  1. [XL-2003] Création de Boucles VBA avec plusieurs Conditions
    Par MatMout dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/07/2010, 10h31
  2. [VBA-E] Création Graphique dans une boucle
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/06/2006, 10h32
  3. [VBA-E]Création Boucle ?
    Par greg bono dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/03/2006, 16h41
  4. VBA Excel - Création de graphique
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 16h11
  5. [VBA-A] Condition pour boucle if
    Par ptitegrenouille dans le forum Access
    Réponses: 6
    Dernier message: 23/11/2005, 09h33

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