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 :

Pb de synthaxe : macro copier/coller des cellules d'une feuille à une autre, sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Pb de synthaxe : macro copier/coller des cellules d'une feuille à une autre, sous condition
    Bonjour,

    J'essaye en vain de faire une macro pour copier coller des lignes d'une feuille à une autre sous condition (au passage je suis novice dans les macros...).
    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
    Sub CopierColler()
        Dim wsSource As Range
        Dim wsCible As Range
        Dim dl As Long
        Dim tmpLigne As Long
        Dim i As Long
     
        Set wsSource = Worksheets("Facturesencours").Range("a6:h6")
        tmpLigne = Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
     
        'On récupère la dernière ligne remplie dans un objet range
        dl = Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Set wsCible = Worksheets("Facturesok").Range("a" & dl, "h" & dl)
     
        i = 1
        'Pour chaque ligne du fichier source
        Do 'i = 1 To derniereLigne
            'Si la colonne H contient "ok" --> deplacer vers Facturesok
            If wsSource.Cells(i, "H").Value = "ok" Then
                wsCible.Rows(dl).Value = wsSource.Rows(i).Value
                wsSource.Rows(i).Delete
                dl = dl + 1
                tmpLigne = tmpLigne - 1  ' ajuster le nombre de lignes restant
                i = i - 1 'Redressement
            End If
            i = i + 1
        Loop Until i <= tmpLigne
    End Sub
    Ca ne fonctionne malheureusement pas.
    Je vais essayer d'expliquer ce que j'attends de ma macro :

    Lorsqu'une ligne de la feuille "facturesencours" comporte "ok" dans la colonne H, je souhaite qu'elle soit copié dans la feuille "facturesok"
    + qu'elle disparaisse de la feuille d'origine
    + que les lignes s'ajoutent les unes à la suite des autres dans la feuille "facturesok"

    Si quelqu'un peut m'aider ...
    Merci d'avance,

    Cdt,

    Macpiero

    PS. Mon fichier en P-Jalpha2.xls

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne comprends pas bien ce que tu mets dans la variable d1 à la ligne 12.

    Mais je pense que le code suivant (à adapter en fonction de ton besoin) devrait faire à peu près ce que tu souhaites.

    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
    Sub CopierColler()
     
       Dim V_Fin_Source As Long
       Dim V_Fin_Cible As Long
       Dim V_I As Long
     
    	V_Fin_Source = Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
    	V_Fin_Cible = Sheets("Facturesok").Range("A65536").End(xlUp).Row + 1
     
    	For V_I = 1 To V_Fin_Cible
    		If Sheets("Feuil1").Cells(i, "H").Value = "ok" Then
    			Sheets("Feuil1").rows(i).cut
    			Sheets("Feuil1").rows(V_FinCible).PasteSpecial
    			V_Fin_Source = V_Fin_Source - 1   ' puisqu'on a enlevé une ligne
    			V_Fin_Cible = V_Fin_Cible + 1     ' puisqu'on a ajoutré une ligne
    		End If
    	Next V_I	
     
    End Sub

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

Discussions similaires

  1. [XL-2013] macro copier, effacer des cellule et coller à la suite
    Par mimi13580 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/11/2014, 14h26
  2. [XL-2010] Problème macro copier-coller des cellules dans deux feuilles Excel
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2014, 19h05
  3. Réponses: 81
    Dernier message: 16/09/2013, 14h48
  4. Réponses: 4
    Dernier message: 28/04/2011, 15h50
  5. Réponses: 5
    Dernier message: 14/02/2006, 14h32

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