Probleme VBA

Bonjour

J'ai un classeurs avec plusieurs feuilles et une feuille de consolidation .

Mon idée , c'est de pouvoir copier une partie des feuilles Excel sur la feuille consolidation en appuyant sur un bouton consolidation .

Malgré tous mes effrots , l'opération copier coller ne marche pas alors que toutes les autres lignes de codes VBA fonctionnent

Je vous prie de m'aider SVP

voila le code que j'utilise

Dim j As Integer, i As Integer

Dim Derniereligne As Integer

Dim Lastrowconsolidation As Integer

Sub Effacerdonnees()

Worksheets("Consolidation").Select

Range("A11:AP14000").Select

Selection.Clear

Range("A11").Select

End Sub

Sub Consolider()

Application.ScreenUpdating = False

Effacerdonnees

For j = 2 To 32

Sheets(j).Select

Derniereligne = Range("A225").End(xlUp).Row

For i = 7 To Derniereligne

Sheets(j).Select

Rows(i).Select

Selection.Copy

Sheets("Consolidation").Select

Lastrowconsolidation = Range("A40000").End(xlUp).Row + 1

Cells(Lastrowconsolidation, 1).Select

ActiveSheet.Paste

Application.CutCopyMode = False

Next i

Next j

Application.ScreenUpdating = True

MsgBox "La consolidation est terminé...", vbOKOnly + vbInformation, "information"

End Sub

Bonjour,

Sans fichier voici quelques questions :

Votre feuille consolidation est bien positionnée en premier dans votre fichier ?

La ligne de titre est bien en ligne 10 dans votre feuille consolidation ?

Vous avez bien 32 feuilles en tout dans votre fichier ?

Cordialement

Bonjour

C'est parce que le fichier est très volumineux selon le forum "2 Mo"

J ai une première feuille " Tableau de bord "

31 feuilles pour chaque jour du mois .

La derniere feuille , c'est la feuille consolidation

Le titre est bien sur la ligne 10

Re

Essayez ceci :

Sub Consolider()
Dim j As Byte
Dim i As long
Dim derniereligne as long
Application.ScreenUpdating = False

Worksheets("Consolidation").Range("A11:AP40000").Clear

For j = 2 To 32
    derniereligne = Sheets(j).Range("A225").End(xlUp).Row

    For i = 7 To derniereligne
        With Sheets("Consolidation")
            Lastrowconsolidation = .Range("A40000").End(xlUp).Row + 1
            Sheets(j).Rows(i).Copy .Cells(Lastrowconsolidation, 1)
            Application.CutCopyMode = False
        End With

    Next i
Next j

Application.ScreenUpdating = True
MsgBox "La consolidation est terminé...", vbOKOnly + vbInformation, "information"

End Sub

Cordialement

Edit Dan : Modifié définition variables

Bonjour

Malheureusement , cela ne marche toujours pas .

Voila le fichier :

www

okok

fr

/informations-fichier/d9412b3b-aa5e-421b-863c-a16e9d8f0913

Merci énormément pour votre aide

Cordialement

Re

Mettez votre fichier sur www.cjoint.com puis coller ici le lien qui vous sera renvoyé

Cordialement

Bonjour

Voila le fichier :

Cordilement

Re

Ok j'ai pu reprendre votre fichier sur Okok

1. Supprimer vos trois variables DIM en haut du module. Je les ai déjà placées dans la macro Consolidation.

2. Dans la macro Consolidation vous n'avez pas besoin de l'instruction Effacerdonnees puisque la ligne suivante efface déjà les données

3. Dans le code consolidation, modifiez la ligne ci-dessous

derniereligne = Sheets(j).Range("A" & Sheets(j).Rows.Count).End(xlUp).Row

4. la macro effacerdonnées est celle-ci

Sub Effacerdonnees()
Worksheets("Consolidation").Range("A11:AP40000").Clear
End Sub

Crdlt

EDIT :

Au fait, vu le nombre de données à copier, dans la macro Consolidation, mettez ces deux lignes

en debut de code --> Application.Calculation = xlCalculationManual

en fin de code --> Application.Calculation = xlCalculationAutomatic

ensuite attendez tout de même un peu de temps....

Bonjour

Merci énormément cela marche à merveille.

Je vais certainement abuser de votre gentillesse .

Avez vous le nom d'un Add-on Excel qui facilite la création des tableau de bord ?

Merci beaucoup

Cordialement

Re

Avez vous le nom d'un Add-on Excel qui facilite la création des tableau de bord ?

Je ne vois pas de quoi vous parlez.

Que voulez-vous faire ? Pour quel usage final

Crdlt

Bonjour

C'est une sorte de module complémentaire qu'on installe sur Excel et cela permet la mise en place de formes dynamique pour son tableau de bord ( Des jauges , des graphiques spéciaux ..)

Il y en a un que je connais mais il est payant (Ultimate Dashboard Tools)

Cordialement

Re

Vous n'avez pas regardé Powerpivot, Power BI ?

Crdlt

Reuh

Oui mais je veux faire en sorte que ma feuille consolidation renvoie à travers des tableaux dynamique toutes les données utiles a ma feuille tableau de bord

Rechercher des sujets similaires à "probleme vba"