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 :

Besoin d'une boucle pour finir mon projet


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Besoin d'une boucle pour finir mon projet
    hello,

    je suis nouveau ici (novice en vba) et si je vient a vous c'est que j'ai besoin d'aide
    déjà je vais commencé par posté mon code fait avec l'enregistreur de macro
    et certain comprendront direct ma demande

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Sub BV_Macro()
    '
    ' Macro By k8v
    '
    ' ligne n°2
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Copy
     
        Range("D17:G17").Select ' destination
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C39" ' source
     
        Range("D19:G19").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C4"
     
        Range("D21:G21").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C2"
     
        Range("D26:G28").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C22"
     
        Range("D29:G30").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C8"
     
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Name = "01" ' Renommer
     
        Windows("Violettes6_BIS.xls").Activate
     
    ' ligne n°3   
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Copy After:=Workbooks("Classeur1").Sheets(1)
     
        Range("D17:G17").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R3C39"
        Range("D19:G19").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R3C4"
        Range("D21:G21").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R3C2"
        Range("D26:G28").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R3C22"
        Range("D29:G30").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R3C8"
     
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Name = "02"
        Windows("Violettes6_BIS.xls").Activate
     
    ' ligne n°4 
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Copy After:=Workbooks("Classeur1").Sheets(1)
     
        Range("D17:G17").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R4C39"
        Range("D19:G19").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R4C4"
        Range("D21:G21").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R4C2"
        Range("D26:G28").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R4C22"
        Range("D29:G30").Select
        ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R4C8"
     
        Sheets("NE PAS MODIFIER").Select
        Sheets("NE PAS MODIFIER").Name = "03"
        Windows("Violettes6_BIS.xls").Activate
     
    End Sub
    vous l'aurez remarqué je répète se code a l’infini (et encore j'ai coupé une parti pour vous )
    je voudrai m'évité le code pour + de 300 ligne
    et j'aurai voulu donc une boucle ''case=1 on continue, case=0 stop"
    mais j'ai beau cherché je ne vois pas trop comment la tourné pour mon code

    merci d'avance a tout personne qui pourra m'aidé

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    reste à ajuster la grandeur de la boucle
    ce code boucle 49 fois

    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
    Sub BV_Macro()
     
        Windows("Violettes6_BIS.xls").Activate
        For i = 2 To 50 'reste à ajuster la grandeur de la boucle
     
            Sheets("NE PAS MODIFIER").Copy After:=Workbooks("Classeur1").Sheets(1)
            Sheets("NE PAS MODIFIER (2)").Range("D17:G17").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C39"
            Sheets("NE PAS MODIFIER (2)").Range("D19:G19").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C4"
            Sheets("NE PAS MODIFIER (2)").Range("D21:G21").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C2"
            Sheets("NE PAS MODIFIER (2)").Range("D26:G28").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C22"
            Sheets("NE PAS MODIFIER (2)").Range("D29:G30").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C8"
            Sheets("NE PAS MODIFIER (2)").Name = "0" & i - 1
     
        Next
     
    End Sub
    je n'ai pas compris boucle case

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    en gros j'aurai voulu un code comme cela:

    [1] je crée une copie de l'onglet 'NE PAS MODIFIER' de mon excel Violettes6_BIS.xls dans un autre classeur

    [2] dans se classeur je récupère les info dont j'ai besoin a la ligne 2 du excel Obs.xls

    [3]si il y a des info a la ligne 3 du excel Obs.xls je reprend a [1] mais je dois modifier la ligne par 3 ...

    [4]si il n'y a rien on stop le code

    ______
    j'ai testé ton code pour le moment ça peux me convenir le temps de trouver ce que je recherche

    merci encore

    (edit)

    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
    38
    39
    40
    41
    42
    43
    44
     
    Sub BV_Macro()
    '
    ' Macro By k8v
    '
    ' ligne n°2
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Copy
     
            Range("D17:G17").Select ' destination
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C39" ' source
     
            Range("D19:G19").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C4"
     
            Range("D21:G21").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C2"
     
            Range("D26:G28").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C22"
     
            Range("D29:G30").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C8"
     
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Name = "01" ' Renommer
     
             Windows("Violettes6_BIS.xls").Activate
     
    ' ligne n°3 a n°x
    For i = 3 To 50 'reste à ajuster la grandeur de la boucle
            Windows("Violettes6_BIS.xls").Activate
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Copy Before:=Workbooks("Classeur1").Sheets(1)
            Sheets("NE PAS MODIFIER").Range("D17:G17").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C39"
            Sheets("NE PAS MODIFIER").Range("D19:G19").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C4"
            Sheets("NE PAS MODIFIER").Range("D21:G21").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C2"
            Sheets("NE PAS MODIFIER").Range("D26:G28").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C22"
            Sheets("NE PAS MODIFIER").Range("D29:G30").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C8"
            Sheets("NE PAS MODIFIER").Name = "0" & i - 1
     
    Next
     
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    j'ai résolu ma boucle grâce a un ami

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub BV_Macro()
    '
    ' Macro By k8v pour Bureau Veritas
    '
    Windows("Obs.xls").Activate
    Dim NbLig As Integer
        NbLig = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    ' ligne n°2
            Windows("Violettes6_BIS.xls").Activate
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Copy
     
            Range("D17:G17").Select ' destination
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C39" ' source
     
            Range("D19:G19").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C4"
     
            Range("D21:G21").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C2"
     
            Range("D26:G28").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C22"
     
            Range("D29:G30").Select
            ActiveCell.FormulaR1C1 = "='[Obs.xls]Corrective Action'!R2C8"
     
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Name = "01" ' Renommer
     
             Windows("Violettes6_BIS.xls").Activate
     
    ' ligne n°3 a n°x
    For i = 3 To NbLig 'reste à ajuster la grandeur de la boucle
     
            Windows("Violettes6_BIS.xls").Activate
            Sheets("NE PAS MODIFIER").Select
            Sheets("NE PAS MODIFIER").Copy Before:=Workbooks("Classeur1").Sheets(1)
            Sheets("NE PAS MODIFIER").Range("D17:G17").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C39"
            Sheets("NE PAS MODIFIER").Range("D19:G19").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C4"
            Sheets("NE PAS MODIFIER").Range("D21:G21").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C2"
            Sheets("NE PAS MODIFIER").Range("D26:G28").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C22"
            Sheets("NE PAS MODIFIER").Range("D29:G30").FormulaR1C1 = "='[Obs.xls]Corrective Action'!R" & i & "C8"
            Sheets("NE PAS MODIFIER").Name = "0" & i - 1
     
    Next
     
    End Sub

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

Discussions similaires

  1. Besoin d'aide pour compiler mon projet en VB6
    Par dmoluc dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/11/2012, 17h03
  2. [Toutes versions] Besoin d'une aide pour valider mon travail dans un fichier excel.
    Par Hitman_11 dans le forum Excel
    Réponses: 3
    Dernier message: 27/06/2011, 18h46
  3. Une boucle pour mon parser !
    Par ReaseT dans le forum Langage
    Réponses: 3
    Dernier message: 09/03/2009, 17h09
  4. Besoin d'une idée pour finir ma condition IF
    Par pcsystemd dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 02/05/2008, 16h18
  5. J'ai besoin d'un tuteur pour finir mon projet !
    Par condor_01 dans le forum Réseau
    Réponses: 1
    Dernier message: 31/10/2007, 14h02

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