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 :

je veu copier une feuille d'un classeur et il affiche erreur 424


Sujet :

Macros et VBA Excel

  1. #41
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    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
    Sub Copier()
     
    Dim WBSource As Workbook, WBDest As Workbook
    Dim i As Integer
    Dim j As Long
     
     
    'Demander le numéro de la ligne de début
    Ligne_début = InputBox("Placer : Ligne début ?")
     
    'Test de réponse exacte
    Do Until Ligne_début
         If Not Ligne_début Then
            reponse = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
         End If
    Loop
     
    If Ligne_début = 0 Then
            Ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
    End If
    'Demander le numéro de ligne de fin
    ligne_fin = InputBox("Placer : Ligne fin ?")
     
    'Test de réponse exacte
     Do Until Ligne_début
         If Not Ligne_début Then
            reponse = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
         End If
    Loop
     
    If Ligne_début = 0 Then
            Ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
    End If
    'Boucle pour chaque ligne
    For ligne = Ligne_début To ligne_fin
        test = 0
     
     
     
     Set WBSource = Workbooks("ruitz.xls")
    Set WBDest = Workbooks("planning.csv")
    'cherche la ligne vide dans le classeur de destination
    i = WBDest.Worksheets("planning").Range("A65536").End(xlUp).Row + 1
     
    'Si la valeur de la cellule xy vaut une valeur, alors
     If Not (Cells(ligne, 2) = Empty Or Cells(ligne, 5) = Empty Or Cells(ligne, 7) = Empty) Then
     
    End If
    'je la copie
     'Coller la colonne A sur la colonne B
    WBSource.Sheets("planning").Range("D:D").Copy (WBDest.Sheets("planning").Range("B:B"))
    'Coller la colonne B sur la colonne E
    WBSource.Sheets("planning").Range("B:B").Copy (WBDest.Sheets("planning").Range("E:E"))
     
    'Coller la colonne C sur la colonne S
    WBSource.Sheets("planning").Range("C:C").Copy (WBDest.Sheets("planning").Range("S:S"))
    'Je la colle sur la feuille précédente
     Next
    'etc...
     
    'et je passe à la ligne suivant
     
     
     
    End Sub
    mon prog fonctionne mais ne tien pas compte du choix des ligne il copie toute la colonne

  2. #42
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Si ton code copie une colonne, il collera une colonne... Que veux-tu copier ?
    Ensuite,
    Citation Envoyé par ousk'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If not (Cells(ligne,2)= Empty Or Cells(ligne,5)= Empty Or Cells(ligne,19) = Empty) Then
         'Ton code
    Endif
    Tel que tu le mets, ton code ne sert à rien... ou as-tu shunté une partie du code ?

  3. #43
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    ce que je veu c copier lesligne que j'ais selectionné

    pour sa il faut que je mette tous mon code dans la boucle if c sa ?

  4. #44
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    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
    Sub Copier()
     
    Dim WBSource As Workbook, WBDest As Workbook
    Dim i As Integer
    Dim j As Long
     
     
    'Demander le numéro de la ligne de début
    Ligne_début = InputBox("Placer : Ligne début ?")
     
    'Test de réponse exacte
    Do Until Ligne_début
         If Not Ligne_début Then
            reponse = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
         End If
    Loop
     
    If Ligne_début = 0 Then
            Ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
    End If
    'Demander le numéro de ligne de fin
    ligne_fin = InputBox("Placer : Ligne fin ?")
     
    'Test de réponse exacte
     Do Until Ligne_début
         If Not Ligne_début Then
            reponse = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
         End If
    Loop
     
    If Ligne_début = 0 Then
            Ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
    End If
    'Boucle pour chaque ligne
    For ligne = Ligne_début To ligne_fin
        test = 0
     
     
     
     Set WBSource = Workbooks("ruitz.xls")
     Set WBDest = Workbooks("planning.csv")
    'cherche la ligne vide dans le classeur de destination
    i = WBDest.Worksheets("planning").Range("A65536").End(xlUp).Row + 1
     
    'Si la valeur de la cellule xy vaut une valeur, alors
     
    'je la copie
     'Coller la colonne A sur la colonne B
    WBSource.Sheets("planning").Range("D:D").Copy (WBDest.Sheets("planning").Range("B:B"))
    'Coller la colonne B sur la colonne E
    WBSource.Sheets("planning").Range("B:B").Copy (WBDest.Sheets("planning").Range("E:E"))
     
    'Coller la colonne C sur la colonne S
    WBSource.Sheets("planning").Range("C:C").Copy (WBDest.Sheets("planning").Range("S:S"))
    'Je la colle sur la feuille précédente
     Next
    'etc...
     
    'et je passe à la ligne suivant
     
     
     
    End Sub
    j'ais l'erreur '9'
    l'indice n appartient pas a la selection
    a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WBDest = Workbooks("planning.csv")

  5. #45
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    pour lerreur 9 j aie trouver la solution mais mon programme ne selectionne toujours pas les lignes choisis

  6. #46
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par ouskel'n'or
    Si ton code copie une colonne, il collera une colonne... Que veux-tu copier ?
    En simplifiant ton code
    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
    Dim WBSource As Workbook, WBDest As Workbook
    Dim i As Integer
    Dim j As Long
    Dim Ligne_début, test
        Set WBSource = Workbooks("ruitz.xls")
        Set WBDest = Workbooks("planning.csv")
        msg = "Placer : Ligne début ?"
        'Demander le numéro de la ligne de début
        Do
            Ligne_début = InputBox(msg)
            'Test de réponse exacte
            If Ligne_début = "" Then msg = "Qu'est ce que tu crois?? La ligne 0 n'existe pas!" & vbCr & msg
        Loop While Ligne_début = Empty
         
        'Demander le numéro de ligne de fin
        msg = "Placer : Ligne fin ?"
        Do
            ligne_fin = InputBox(msg)
            'Test de réponse exacte
            If ligne_fin = "" Then msg = "Qu'est ce que tu crois?? La ligne 0 n'existe pas!" & vbCr & msg
        Loop While ligne_fin = Empty
        
        'Boucle pour chaque ligne
        For Ligne = Ligne_début To ligne_fin
            test = 0
            'cherche la ligne vide dans le classeur de destination
            i = WBDest.Worksheets("planning").Range("A65536").End(xlUp).Row + 1
             
            'Si la valeur de la cellule xy vaut une valeur, alors
             
            'je la copie
             'Coller la colonne A sur la colonne B
             'QU'EST-QUE A et QU'EST-QUE B ???????????????         
            WBSource.Sheets("planning").Range("D:D").Copy WBDest.Sheets("planning").Range("B:B")
            '.......
        Next

  7. #47
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    voici mon nouveau programme


    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    Option Explicit
     
     
     
     
    Sub Copier()
     
     
     
    Dim WSSource As Worksheet
     
    Dim WSDest As Worksheet
     
    Dim i As Integer
     
    Dim j As Boolean
     
    Dim ligne_début As String
     
    Dim ligne_fin As String
     
    Dim ligne As Integer
     
     
     
    'Demander le numéro de la ligne de début
     
    ligne_début = InputBox("Placer : Ligne début ?")
     
     
     
    'Test de réponse exacte
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_début)
     
            ligne_début = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_début < 15 Then
     
            ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
     
    'Demander le numéro de ligne de fin
     
    ligne_fin = InputBox("Placer : Ligne fin ?")
     
     
     
    'Test de réponse exacte
     
     
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_fin)
     
            ligne_fin = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_fin <= ligne_début Then
     
            ligne_fin = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
     
     
     
     Set WSSource = Workbooks("ruitz.xls").Worksheets("planning")
     
    Set WSDest = Workbooks("planning.csv").Worksheets("planning")
     
     
     
    'Boucle pour chaque ligne
     
    For ligne = ligne_début To ligne_fin
     
     
     
    'cherche la ligne vide dans le classeur de destination
     
        i = WSDest.Range("A65536").End(xlUp).Row + 1
     
     
     
    'On copie les cellules E,ligne, K ligne et Nligne ->Q ligne
     
     
     
        WSSource.Cells(ligne, 4).Copy (WSDest.Cells(i, 5))
     
        WSSource.Cells(ligne, 9).Copy (WSDest.Cells(i, 9))
     
        WSSource.Cells(ligne, 19).Copy (WSDest.Cells(i, 14))
     
        WSSource.Cells(ligne, 20).Copy (WSDest.Cells(i, 15))
     
        WSSource.Cells(ligne, 21).Copy (WSDest.Cells(i, 17))
     
        WSSource.Cells(ligne, 22).Copy (WSDest.Cells(i, 18))
     
     
     
    Next
     
     
     
     
     
    End Sub

    le seul probleme maintenant c qu'il ne copie pas la selection choisi
    c'est a dire celle que g fais en choisissant une ligne de debut et une de fin
    il ne copie que la derniere

  8. #48
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    C'est normal


    Regarde ce qu'est i et comment il le calcule

    Regarde où tu colle la première cellule dans le tableaux planing


    WSSource.Cells(ligne, 4).Copy (WSDest.Cells(i, 5))
    soit dans la colonne 5 ou E

    Ce qui signifie qu'il n'y a jamais rien dans la colonne A donc a chaque fois, il recopie sur la 1ere ligne!!!

  9. #49
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    je pense que l'erreur vient de la variable i mais je ne sais pas trop comment la corriger

  10. #50
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    et si dans la variable i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = WSDest.Range("A65536").End(xlUp).Row + 1

    je remplace le A depar ma premiere colonne sa devrez marcher nan

  11. #51
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    sa ne marche pas

  12. #52
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    Regarde 2 réponses plus haut !

    Lorsque tu cherche la première ligne vide, tu le fais en fait sur la colonne A
    Tu recherche donc la première CELLULE vide

    or tu n'écris jamais rien dedans.

    A toi de choisir sur quelle colonne tu dois faire ton test!

  13. #53
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = WSDest.Range("E65536").End(xlUp).Row + 1
    tu auras la première ligne libre de ta colonne 5 dans WSDest... si c'est bien là ta question...

  14. #54
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par COCONUT2
    Regarde 2 réponses plus haut !

    Lorsque tu cherche la première ligne vide, tu le fais en fait sur la colonne A
    Tu recherche donc la première CELLULE vide

    or tu n'écris jamais rien dedans.

    A toi de choisir sur quelle colonne tu dois faire ton test!
    Je ne comprends pas pourquoi tu affirmes ça (tu as peut-être raison... je ne conteste pas ça) Peux-tu expliquer le pourquoi ?
    Booskap copie ses données en colonne, i étant la première ligne vide (dans son code, première ligne vide de la colonne A)
    A+

  15. #55
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    oui j avais seulement inversé la colonne destination et la colonne source maintant ca marche voici le code:

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    Sub Copier()
     
     
     
    Dim WSSource As Worksheet
     
    Dim WSDest As Worksheet
     
    Dim i As Integer '
     
    Dim j As Boolean '
     
    Dim ligne_début As String
     
    Dim ligne_fin As String
     
    Dim ligne As Integer
     
     
     
    'Demander le numéro de la ligne de début
     
    ligne_début = InputBox("Placer : Ligne début ?")
     
     
     
    'Test de réponse exacte
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_début) 'ne fonctionne que si la valeur entreé est un chiffre
     
            ligne_début = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_début < 15 Then 'si la ligne de début selectionné est inferieure a 15 alors ce message a apparait
     
            ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
     
    'Demander le numéro de ligne de fin
     
    ligne_fin = InputBox("Placer : Ligne fin ?")
     
     
     
    'Test de réponse exacte
     
     
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_fin)
     
            ligne_fin = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_fin <= ligne_début Then
     
            ligne_fin = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
     
     
     
     Set WSSource = Workbooks("ruitz.xls").Worksheets("planning")
     
    Set WSDest = Workbooks("planning.csv").Worksheets("planning")
     
     
     
    'Boucle pour chaque ligne
     
    For ligne = ligne_début To ligne_fin
     
     
     
    'cherche la ligne vide dans le classeur de destination
     
        i = WSDest.Range("D65536").End(xlUp).Row + 1 'verifie le tableau en commençant par la fin et cela jusqu'à ce qu'il trouve la ligne qui n'est pas vide
     
     
     
     
    'On copie les cellules E,ligne, K ligne et Nligne ->Q ligne
     
     
     
        WSSource.Cells(ligne, 5).Copy (WSDest.Cells(i, 4))
     
        WSSource.Cells(ligne, 11).Copy (WSDest.Cells(i, 9))
     
        WSSource.Cells(ligne, 14).Copy (WSDest.Cells(i, 19))
     
        WSSource.Cells(ligne, 15).Copy (WSDest.Cells(i, 20))
     
        WSSource.Cells(ligne, 16).Copy (WSDest.Cells(i, 21))
     
        WSSource.Cells(ligne, 17).Copy (WSDest.Cells(i, 22))
     
     
     
    Next
     
     
     
     
     
    End Sub
    un grand merci pour l'aide que g reçue .

  16. #56
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    il y a un petit probleme c que quand il copie une de mes colonnes il copie la formule qu'il y avais sur excel et non la valeur

  17. #57
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Alors tu dois passer par PasteSpecial Paste:=xlPastevalues (ou xlvalues...)
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        WSSource.Cells(ligne, 14).Copy 
           WSDest.Range(Cells(i, 20).address).PasteSpecial Paste:=xlValues, Operation:=xlNone
    Je ne suis pas certain que VBA accepte "WSDest.Range(Cells(i, 20).address)"
    Et je crois bien me souvenir qu'il n'accepte pas du tout "WSDest.Cells(i,20).PasteSpecial ...
    Tu dis, on te trouvera une solution, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Cell = Cells(i, 20).address
        WSSource.Cells(ligne, 14).Copy 
        WSDest.Range(Cell).PasteSpecial Paste:=xlValues, Operation:=xlNone
    A placer dans cet ordre, Cell étant déclaré en Variant (et non en tant que range)

  18. #58
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    Option Explicit
    Sub copier()
     
     
     
    Dim WSSource As Worksheet
     
    Dim WSDest As Worksheet
     
    Dim i As Integer
     
    Dim j As Boolean
     
    Dim ligne_début As String
     
    Dim ligne_fin As String
     
    Dim ligne As Integer
     
    Dim cell As String
     
     
     
    'Demander le numéro de la ligne de début
     
    ligne_début = InputBox("Placer : Ligne début ?")
     
     
     
    'Test de réponse exacte
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_début)
     
            ligne_début = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_début < 15 Then
     
            ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
     
    'Demander le numéro de ligne de fin
     
    ligne_fin = InputBox("Placer : Ligne fin ?")
     
     
     
    'Test de réponse exacte
     
     
     
    j = False
     
    Do While j = False
     
        j = True
     
        Do Until IsNumeric(ligne_fin)
     
            ligne_fin = InputBox("N'importe quoi! Il faut donner un numéro de ligne!!!")
     
            j = False
     
        Loop
     
     
     
        If ligne_fin <= ligne_début Then
     
            ligne_fin = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
     
            j = False
     
        End If
     
    Loop
     
     
    If ligne_début = 0 Then
            ligne_début = InputBox("Qu'est ce que tu crois?? La ligne 0 n'existe pas!")
    End If
    Set WSSource = Workbooks("ruitz.xls").Worksheets("planning")
     
    Set WSDest = Workbooks("planning.csv").Worksheets("planning")
     
     
     
    'Boucle pour chaque ligne
     
    For ligne = ligne_début To ligne_fin
     
     
     
    'cherche la ligne vide dans le classeur de destination
     
        i = WSDest.Range("A65536").End(xlUp).Row + 1
     
     
     
    'On copie les cellules E,ligne, K ligne et Nligne ->Q ligne
     
     
     
        WSSource.Cells(ligne, 5).Copy (WSDest.Cells(i, 1))
     
        WSSource.Cells(ligne, 11).Copy (WSDest.Cells(i, 2))
     
        WSSource.Cells(ligne, 14).Copy (WSDest.Cells(i, 3))
     
        WSSource.Cells(ligne, 15).Copy (WSDest.Cells(i, 4))
     
        WSSource.Cells(ligne, 16).Copy (WSDest.Cells(i, 5))
     
        cell = Cells(i, 21).Address
        WSSource.Cells(ligne, 17).Copy
        WSDest.Range(cell).PasteSpecial Paste:=xlValues, Operation:=xlNone
     
     
     
    Next
     
     
     
     
     
    End Sub
    en essayant ce code il ne copie que la ligne de debut et la ligne de fin et pas ce qu'il y a entre les deux

  19. #59
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 74
    Points : 21
    Points
    21
    Par défaut
    non c bon tout marche aà merveille c du au faite que des lignes en colonne A été vide

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Copier une feuille d'un classeur dont on ne connait pas le nom
    Par macromagnon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/04/2014, 22h11
  2. Copier une feuille d'un classeur fermé dans un autre fermé
    Par abdelkarim_1987 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/09/2013, 17h44
  3. [XL-2010] Copier une feuille d'un classeur existant sur un nouveau classeur avec vba
    Par missy060 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/06/2013, 00h46
  4. [XL-2003] copier une feuille sur un classeur fermé
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/01/2012, 19h23
  5. Copier une feuille dans un classeur nouvellement créé
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/11/2008, 10h57

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