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 :

Ventilation données sur plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2018
    Messages : 110
    Par défaut Ventilation données sur plusieurs feuilles
    Bonjour,
    J'ai un soucis avec mon code VBA cree pour la ventilation des données sur plusieurs feuilles.Quand debug il m'affiche cette erreur " Methode 'Range' of object_Global' failed " au niveau de cette formule
    '' LastRow = Range("A1000000").End(xlUp).Row ''.

    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
    	Dim j As Integer
    	Dim LastRow As Integer
    	Dim DerniereLigne As Integer
     
    	Sub Ventilation()
     
    	    Application.ScreenUpdating = False
     
    	    'boucle permettant de lire toutes les 12 feuilles du classeur
    	    For j = 1 To 12
     
    	        Sheets(j).Select
    	        LastRow = Range("A1000000").End(xlUp).Row
    	        For i = LastRow To 6 Step -1 'Parcourir les lignes en remontant vers le haut
    	            Sheets(j).Select
    	            Rows(i).Select
    	            Selection.Delete shift:=(xlUp)
    	        Next i
     
    	        Sheets("SOURCE").Select
    	        DerniereLigne = Range("A1000000").End(xlUp).Row
     
    	        For k = 6 To LastRow
     
    	            Sheets("SOURCE").Select
    	            If Sheets(j).Name = Cells(k, 7).Value Then
     
    	               Rows(k).Select
    	               Selection.Copy
     
    	               Sheets(j).Select
    	               LastRow = Range("A1000000").End(xlUp).Row + 1
    	               Cells(LastRow, 1).Select
    	               ActiveSheet.Paste
     
    	            End If
     
    	        Next k
     
    	      Next j
     
    	      Sheets("SOURCE").Select
    	      Application.CutCopyMode = False
    	      Application.ScreenUpdating = True
     
    	End Sub

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    LastRow = Range("A" & Rows.Count).End(xlUp).Row

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    en fait en fonction de la version d'excel , tu peut avoir 65000 lignes seulement
    c'est pourquoi Rows.count te donnes le nombre de ligne juste...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2018
    Messages : 110
    Par défaut ventilation données sur plusieurs feuilles
    Bonjour mjpmjp ,

    Merci pour ta reponse mais quand j'insere la formule que tu m'as transmise et que je debug sa me donne cette erreur "Application-defined or object-defined error" au niveau de cette formule
    "Cells(LastRow, 1).Select ".

    Cordialement

  5. #5
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    çà vient de là : Dim LastRow As Integer.

    Dim LastRow As Long

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    je viens de voir ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
             For j = 1 To 12 
    	        Sheets(j).Select
    	        LastRow = Range("A1000000").End(xlUp).Row
    	        For i = LastRow To 6 Step -1 'Parcourir les lignes en remontant vers le haut
    	            Sheets(j).Select
    	            Rows(i).Select
    	            Selection.Delete shift:=(xlUp)
    	        Next i
    je te propose ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim LastRow as Long
    For j = 1 To 12
        with Sheets(j)
            LastRow = .Range("A" & rows.count).End(xlUp).Row
            .Range("a6:a" & LastRow).EntireRow.Delete
     
        ..... la suite avec sheets(j) ...
     
        end with
    next j
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  7. #7
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2018
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2018
    Messages : 110
    Par défaut Ventilation données sur plusieurs feuilles
    Bonjour,

    Merci pour ton aide avec cette formule, mais si te plait quand j'active le bouton de commande mes codes VBA n'applique pas mes instructions mes instructions suivantes
    'ventiler les noms de la colonne 7 dans chaque feuille si celui-ci a le meme intitulé que la feuille

    ci dessous la recape de mes code vba

    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
    Dim j As Integer
        Dim LastRow As Long
        Dim DerniereLigne As Integer
     
        Sub Ventilation()
     
            Application.ScreenUpdating = False
     
            'boucle permettant de lire toutes les 12 feuilles du classeur
            For j = 1 To 12
     
                Sheets(j).Select
                LastRow = Range("A" & Rows.Count).End(xlUp).Row
                For i = LastRow To 6 Step -1 'Parcourir les lignes en remontant vers le haut
                    Sheets(j).Select
                    Rows(i).Select
                    Selection.Delete shift:=(xlUp)
                Next i
     
                Sheets("SOURCE").Select
                DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
     
                For k = 6 To LastRow
     
                    Sheets("SOURCE").Select
                    If Sheets(j).Name = Cells(k, 7).Value Then 'ventiler les noms de la colonne 7 dans chaque feuille si celui-ci a le meme intitulé que la feuille
     
                       Rows(k).Select
                       Selection.Copy
     
                       Sheets(j).Select
                       LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1
     
                       Cells(LastRow, 1).Select
                       ActiveSheet.Paste
     
                    End If
     
                Next k
     
              Next j
     
              Sheets("SOURCE").Select
              Application.CutCopyMode = False
              Application.ScreenUpdating = True
     
        End Sub

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

Discussions similaires

  1. Birt et données sur plusieurs feuilles Excel
    Par fleak dans le forum BIRT
    Réponses: 8
    Dernier message: 25/07/2011, 17h16
  2. récupérer des données sur plusieurs feuilles en même temps
    Par huître dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2011, 14h10
  3. Manipuler des données sur plusieurs feuilles
    Par gil71 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/05/2010, 14h55
  4. [excel]source de données sur plusieurs feuilles
    Par Yolak dans le forum Excel
    Réponses: 5
    Dernier message: 25/06/2008, 14h40
  5. exportation données sur plusieurs feuilles vers Access
    Par meuah dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 15/05/2008, 21h32

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