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 :

Recopier des données sur condition dans un autre classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut Recopier des données sur condition dans un autre classeur
    Bonjour,

    Je cherche à recopier des données d'un classeur Excel à un autre suivant si la cellule(i,2) est égale à 1110 (ou i varie de 1 au nombre de ligne). Je ne comprends pas où est l'erreur dans mon 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
     
    Sub Export()
    Dim BASE As Workbook
    Dim FD As Worksheet
    Dim WS As Worksheet
    Dim NBligne As Long, NBcolonne As Long, i As Long, j As Long, compteur As Long
    BASE = "C:\Documents and Settings\FRONTIERE-02719\Bureau\doc flo\SAP_DASHBOARD\Export indicateur\Test_Export.xls"
    FD = BASE.Worksheet("Feuil1")
    WS = ThisWorkbook.Worksheets("Feuil1")
    With FD
            NBligne = .Cells(.Rows.Count, 1).End(xlUp).Row
            NBcolonne = .Cells(1, .Columns.Count).End(xlToLeft).Column
    End With
     
    compteur = 1
    For i = 2 To NBligne
    For j = 1 To NBcolonne - 6
        If FD.Cells(i, 2) = "1110" Then compteur = compteur + 1 And WS.Cells(compteur, j) = FD.Cells(i, j + 6)
    	ElseIf FD.Cells(i,2) <> "1110" then compteur = compteur
    	Else compteur = compteur
        End If
    Next j
    Next i 
    End Sub

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut
    Petite précision le classeur ou se trouve les données peut être ouvert ou fermé au moment de la mise à jour.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut
    Bonjour,

    Voici le code modifier et qui fonctionne.

    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
     
    Sub Macro2()
    Dim WS As Worksheet
    Dim NBligne As Long, NBcolonne As Long, i As Long, j As Long, compteur As Long
    Set WS1 = ThisWorkbook.Worksheets("Feuil1")
    Set WS2 = ThisWorkbook.Worksheets("Feuil2")
    With WS1
            NBligne = .Cells(.Rows.Count, 1).End(xlUp).Row
            NBcolonne = .Cells(1, .Columns.Count).End(xlToLeft).Column
    End With
     
    compteur = 1
    For i = 2 To NBligne
        If WS1.Cells(i, 2) = "1110" Then
            compteur = compteur + 1
            For j = 1 To NBcolonne - 6
                If WS1.Cells(i, 2) = "1110" And WS1.Cells(i, j + 6) <> "(NULL)" Then
                    WS2.Cells(compteur, j) = WS1.Cells(i, j + 6)
                ElseIf WS1.Cells(i, 2) <> "1110" Then
                    compteur = compteur
                Else
                    compteur = compteur
                End If
            Next j
        End If
    Next i
    End Sub
    Je voudrais maintenant remplacer la feuille source (WS1) par une feuille d'un autre classeur, mais qui est fermé lors du lancement de la macro. Si vous avez des idées je vous remercie!

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/12/2013, 06h05
  2. Réponses: 3
    Dernier message: 16/09/2010, 12h54
  3. Réponses: 2
    Dernier message: 13/06/2007, 12h29
  4. Réponses: 4
    Dernier message: 11/09/2006, 13h47
  5. recopi des données d'une table dans une autre
    Par moicats dans le forum Access
    Réponses: 5
    Dernier message: 06/04/2006, 21h12

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