BESOIN D'AIDE URGENTE MACROS EXCEL 2003
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
je viens vers vous pour trouver une solution à mon GROS problème pour créer une macro sur Excel.
Je dois faire en sorte de rapatrier des données de quatre tableaux excel à ramener sur un seul.
Deux d'entre eux ont exactement les même colonnes et deux autres non.
Je dois donc pouvoir sélectionner les colonnes que je veux ramener et cela doit se faire après automatiquement, les données à la suite les unes des autres.
On m'a dit que je pouvais faire ça avec une macro qui fait une boucle... après je comprenais plus.
Mon problème est que l'on m'a embaucher pour ce poste et que j'ai un mois pour réussir ça ou je pense que j'ai de grande chance de dégager.
En espérant que quelqu'un me vienne en aide.
- BESOIN D'AIDE URGENTE MACROS EXCEL 2003
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
26 réponses
L’objectif est d’importer quatre tableaux Excel dans un seul fichier en précisant les colonnes à conserver et de les concaténer verticalement. Une macro VBA est proposée pour boucler sur les fichiers sources, déterminer dynamiquement la plage de données et copier les colonnes sélectionnées dans la feuille cible en poursuivant sur la dernière ligne. Les points critiques portent sur éviter les en-têtes répétés (départ à la ligne 2), remplacer les plages fixes par des plages calculées et gérer les erreurs comme l’erreur 1004 liée aux références Range/Cells. Des exemples montrent comment spécifier les colonnes à importer et organiser l’ouverture/ fermeture des fichiers source, avec la possibilité d’adapter le code lorsque les colonnes diffèrent entre les tableaux.
Tout d'abord ces macros ne sont pas de moi... Récupérées sur Internet peut être ici. Désolé pour les sources, mais franchement j'aurais du les noter.
Bon c'est une bonne piste pour toi, afin de ne pas perdre ton job...
Tes 4 fichiers doivent être dans un même répertoire. Rien d'autre dans ce répertoire.
La macro te demande :
1- le répertoire
2- l'extension de tes fichiers (taper xls pour fichiers excel)
3- pour chaque fichier ouvert : demande de sélectionner la plage à copier.
Le résultat apparait sur le document avec en gras rouge le chemin + nom du fichier copié et en dessous ce que vous aurez demandé.
Bon courage
A oui le lien : https://www.cjoint.com/?lgonl4agMi
Le petit problème que je n'ai pas précisé c'est que ces fichiers ne proviennent pas du même pc.
Ils proviennent de quatre pc différents, mais sur le même réseau, seul les répertoires changent.
De plus, même si je pense qu'avec votre réponse, je me rapproche de la solution, il faudrait que cela se fasse automatique dès l'ouverture du tableau excel "cible".
Car ce tableau qui récupère toutes les données est prévus pour mon responsable, qui doit en un seul fichiers voir toutes les données.
J'espère que je suis clair (je suis pas sur lol) et encore merci de votre aide.
Démarches :
1- Ouvrir le classeur autoriser les macros
2- ALT + F11
remplacer :
- les 2 NomFic par le chemin complet + nom + extension du fichier 1 à ouvrir (un exemple est indiqué)
- les 2 NomFic2 par le chemin complet + nom + extension du fichier 2 à ouvrir (un exemple est indiqué)
etc jusqu'à NomFic4
- remplacer les nom du classeur 1, 2, 3, 4 par les noms + extension des fichiers à ouvrir
- remplacer les "A1:G5000" par la plage du fichier source concerné par la copie.
- enlever toutes les ' de début de lignes
- fermer VBA avec la croix
- enregistrer le fichier
le fermer et l'ouvrir...
je n'arrive pas à faire marcher cette macro.
Je ne sais pas si je rentre bien les données, j'ai mis C:\Documents and Settings\rperez\Mes documents\essai\base boulot1.xls" et ainsi de suite pour les autres classeurs.
J'ai mis des copies des classeurs excel sur mes documents pour faire des essais.
Après je ne comprends pas "- remplacer les "A1:G5000" par la plage du fichier source concerné par la copie. "
Si vous pouviez encore m'aider.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionremplacer les "A1:G5000" En fait, dans vos 4 fichiers vous ne voulez pas copier coller les 256 colonnes et quelques 65000 lignes. Vous ne voulez qu'une plage de cellules. C'est donc par cette plage que vous devez remplacer dans la macro les "A1:G5000"...
dim Nb_lignes as variant
Nb_lignes=cells(rows.count,1).end(xlup).row
'remplacer "A1:G5000" par :
"A1:G" & Nblignes
Sub importer_donnees ()
Dim derlig as Integer, dercol as integer
ActiveSheet.Range("A2:AZ65536").ClearContents
Workbooks.Open Filename:=NomFic '(exemple : "C:\Documents and Settings\Bureau\Nouveau dossier\augmentation.xls")
With Workbooks("ouvrir documents.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks(Nom du classeur exemple : "augmentation.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("ouvrir documents.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur).Close
Workbooks.Open Filename:=NomFic2 '(exemple : "C:\Documents and Settings\Bureau\Nouveau dossier\augmentation.xls")
With Workbooks("ouvrir documents.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic2
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks(Nom du classeur exemple : "augmentation.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("ouvrir documents.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur2).Close
Workbooks.Open Filename:=NomFic3 '(exemple : "C:\Documents and Settings\Bureau\Nouveau dossier\augmentation.xls")
With Workbooks("ouvrir documents.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic3
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks(Nom du classeur exemple : "augmentation.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("ouvrir documents.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur3).Close
Workbooks.Open Filename:=NomFic4 '(exemple : "C:\Documents and Settings\Bureau\Nouveau dossier\augmentation.xls")
With Workbooks("ouvrir documents.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic4
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks(Nom du classeur exemple : "augmentation.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("ouvrir documents.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur4).Close
End Sub
Et j'espère que j'ai mis au on endroit la cible de mon tableau base boulot1.xls
Peu importe ou se trouve ton/tes fichiers. Le pricipal étant d'indiquer dans la macro (en gras ci dessus) les bons chemins de tes 4 fichiers.
Démarches :
- Ouvre un classeur vide, enregistrer sous : ouvrir documents.xls
- copier/ coller la macro ci dessus dans un module (ALT+F11, Insertion/Modules)
- modifier les chemins des 4 fichiers à "importer"
- Fermer la fenêtre Visual Basic
- Enregistrer
- Tester : ALT+F8 choisir : importer_donnees et "exécuter"
Il arrête pas de me mettre "Erreur de compilation : Attendu : fin d'instruction"
Si vous avez encore un peu de temps, je vous mets une copie de ce que je fais.
En sachant que pour aller plus vite je n'ai pris que deux bases à importer qui se nomment "baseboulot1" et "baseboulot2" qui doivent être importer dans "baseboulot".
Sub importer_donnees()
Dim derlig As Integer, dercol As Integer
ActiveSheet.Range("A2:AZ65536").ClearContents
Workbooks.Open Filename:=NomFic C:\Documents and Settings\rperez\Mes documents\essai\baseboulot1.xls
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks baseboulot1.xls.ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks baseboulot.xls.Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur).Close
Workbooks.Open Filename:=NomFic2 C:\Documents and Settings\rperez\Mes documents\essai\base boulot2.xls
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic2
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks baseboulot2.xls.ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks(Nom du classeur2).Close
End Sub
Je suis désolé d'être aussi nul, mais encore merci de votre aide.
Sub importer_donnees()
Dim derlig As Integer, dercol As Integer
ActiveSheet.Range("A2:AZ65536").ClearContents
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot1.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks("baseboulot1.xls").Close
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\base boulot2.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic2
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot2.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Workbooks("baseboulot2.xls").Close
End Sub
Cells(1, 1) représente la cellule A1. Donc on sélectionne la plage("A1:Dern_col,Dern_ligne"). Pour ne pas prendre en compte la 1ère ligne, il faut que la plage sélectionnée commence en A2 soit :
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(2, 1),Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Feuil1(Sheets1)
Feuil2(Sheets2)
Feuil3(Sheets3)
This Workbook
Double clic sur This Workbook
2 listes déroulantes : (général) et (déclarations)
en général choisir WorkBook
en déclarations : WorkBook_open
Le code suivant apparait :
Private Sub Workbook_Open()
End Sub
Placer entre ces deux lignes la macro écrite plus haut ou on aura préalablement enlevé les lignes :
"Sub importer_donnees ()"
et
"End Sub"
Encore un souci, je vois qu'il ferme automatiquement mes tableaux sources lorsque je lance la macro.
Est ce que je peux encore abuser et vous poser un problème supplémentaire ?
Les deux autres tableaux que je dois importer n'ont pas exactement les mêmes colonnes, est ce que je peux choisir les colonnes que je souhaite importer ?
Je croise les doigts pour que vous me disiez que c'est possible.
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(1, 1),Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Cells(1, 1) et Cells(derlig, dercol) constituent le point de départ et de fin de la plage sélectionnée.
Cells(1, 1) = A1
Cells(derlig, dercol) = dernière cellule en bas à droite de ta feuille
Si tu veux sélectionner les colonnes B et C (par exemple)
Cells(1, 3) = C1
Cells(derlig, 4) = dernière cellule non vide de la colonne D
Donc tu auras :
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(1, 3),Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 0)
Pour copier le contenu de la colonne C et le placer dans le fichier "destination" colonne D:
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(1, 3),Cells(derlig, 3)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(2, 3)
je reviens encore vers toi parce qu'une chose ne fonctionne pas.
Je ne comprends pas, mais quand je mets ça :
"Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 1)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 2)"
la première colonne se place bien en A, mais ma deuxième colonne se place en dessous en colonne B, au lieu d'à côté.
1
3
5
27/10/2009
27/10/2009
27/10/2009
Et je voulais savoir aussi si c'est possible de lui demander de trier automatiquement dans mon tableau d'importation sur la colonne que je souhaite ?
'Fectivement... Pour remédier à cela il faut "mémoriser" le numéro de la ligne ou tu veux que tout se colle :
Dim numligne as integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
numlign = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("B" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("D" & numligne)
si c'est possible de lui demander de trier automatiquement oui mais tout dépends quoi comment pourquoi?
"Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
Dim numligne As Integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
numlign = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("B" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("C" & numligne)"
Sinon pour le tri, il faudrait qu'il me fasse un tri croissant sur la colonne A par exemple.
Et quand je clic sur de Débogage il me souligne en jaune la ligne :
"Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)"
Merci aussi pour ton aide pou pouille, je ne t'avais pas dit merci hier lors de ton premier message.
Ça ne marche pas, j'ai mis comme ça :
"Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
Dim numligne As Integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
numlign = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("B" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("C" & numligne)"
pou pouille, merci de te joindre à nous. Pour répondre à ton interrogation, l'ouverture d'un classeur le rends de suite activé. En fait, classeur actif = dernier classeur ouvert.
Je peux abuser par rapport au tri ?
Si tu as encore un peu de temps bien sur.
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
je sais pas si tous les parametres sont utiles.
et surtour choisir la "sélection "
J'ai ma cellule A1 qui normalement est l'entête de mon tableau qui vient d'être remplacée par une donnée.
1 Date d'enregist Date courrier
1 27/10/2009 13/10/2009
3 27/10/2009 13/10/2009
au lieu de
N° Date d'enregist Date courrier
1 27/10/2009 13/10/2009
3 27/10/2009 13/10/2009
Mais effectivement, on peux faire une macro dans ce sens...
Mais surtout, je ne comprends pas où je dois faire ce changement dont tu me parles A1 en A2 ?
Private Sub Workbook_Open()
Dim derlig As Integer, dercol As Integer
ActiveSheet.Range("A2:AZ65536").ClearContents
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot1.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot2.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = NomFic2
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot2.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
Dim numligne As Integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
numligne = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("B" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("C" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 7), Cells(derlig, 7)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("D" & numligne)
End Sub
Private Sub Workbook_Open()
Dim derlig As Integer, dercol As Integer
ActiveSheet.Range("A2:AZ65536").ClearContents
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot1.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = "baseboulot1.xls"
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot1.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot2.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
.Range("A65536").End(xlUp).Offset(2, 0) = baseboulot2.xls"
.Range("A65536").End(xlUp).Font.Bold = True
.Range("A65536").End(xlUp).Font.ColorIndex = 3
End With
derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Workbooks("baseboulot2.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, dercol)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
Dim numligne As Integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
numligne = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 1), Cells(derlig, 1)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("A" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 2), Cells(derlig, 2)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("B" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 4), Cells(derlig, 4)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("C" & numligne)
Workbooks("baseboulot3.xls").ActiveSheet.Range(Cells(2, 7), Cells(derlig, 7)).Copy Workbooks("baseboulot.xls").Sheets("Feuil1").Range("D" & numligne)
End Sub
Essaye déjà ça et reviens après
1 Date d'enregist Date courrier
baseboulot1.xls
1 27/10/2009 13/10/2009
3 27/10/2009 13/10/2009
5 27/10/2009 13/10/2009
6 27/10/2009 13/10/2009
7 29/10/2009 13/10/2009
9 30/10/2009 13/10/2009
12 30/10/2009 13/10/2009
13 31/10/2009 13/10/2009
15 31/10/2009 13/10/2009
baseboulot2.xls
2 19/10/2009 15/10/2009
4 17/10/2009 15/10/2009
5 19/10/2009 15/10/2009
Mais c'est bon, j'ai remis Nomfic et ça remarche et j'ai même trouver la solution au problème de la cellule A1 qui se prenait un chiffre au lieu de mon entête de colonne.
J'ai inversé les deux dernières lignes et ça à l'air de marché :
avant:
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
Dim numligne As Integer
With Workbooks("baseboulot.xls").Sheets("Feuil1")
après:
Workbooks.Open Filename:="C:\Documents and Settings\rperez\Mes documents\essai\baseboulot3.xls"
With Workbooks("baseboulot.xls").Sheets("Feuil1")
Dim numligne As Integer
Tu penses que c'était bien ça ?