BESOIN D'AIDE URGENTE MACROS EXCEL 2003
itreal
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
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.
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.
A voir également:
- BESOIN D'AIDE URGENTE MACROS EXCEL 2003
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
26 réponses
Bonjour,
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
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
Déjà merci pour cette réponse aussi rapide.
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.
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.
Le lien : https://www.cjoint.com/?lgplEwJbo4
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...
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...
Bonjour,
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
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 question
Bonjour,
remplacer 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"...
remplacer 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"...
bonjour, peut etre essayer quelquechose dans ce genre ( cela compte le nombre de ligne dans le tableau)
dim Nb_lignes as variant
Nb_lignes=cells(rows.count,1).end(xlup).row
'remplacer "A1:G5000" par :
"A1:G" & Nblignes
dim Nb_lignes as variant
Nb_lignes=cells(rows.count,1).end(xlup).row
'remplacer "A1:G5000" par :
"A1:G" & Nblignes
Alors je viens de voir un erreur sur la macro que je t'ai donné... Pour que la plage soit variable, les tableaux étant alimentés tous les jours, je te l'ai refaite et ça donne :
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"
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"
Je suis désolé mais je bloque, je sais pas si c'est parce que je panique mais j'y arrive pas.
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.
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.
Essaye ceci :
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
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
Explication dans cette ligne de code : 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) 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)
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)
Et aussi, est ce que c'est possible qu'il exécute la macro dès l'ouverture de mon tableau ?
Oui c'est possible. Ouvres ton classeur, ALT + F11 dans la petite fenêtre en haut à droite tu vois :
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"
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"
Arf!!!
Encore un souci, je vois qu'il ferme automatiquement mes tableaux sources lorsque je lance la macro.
Encore un souci, je vois qu'il ferme automatiquement mes tableaux sources lorsque je lance la macro.
Un énorme merci à vous, je commence à me dire que je vais réussir à présenter un projet grâce à vous.
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.
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.
Le choix des colonnes se fait ici :
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)
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)
Non le module tu le supprimes, si tout ton code est dans This workbook...
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)
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)
Bonjour,
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 ?
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 ?
Salut,
'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?
'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?
Ç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)"
Sinon pour le tri, il faudrait qu'il me fasse un tri croissant sur la colonne A par exemple.
"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.
Il me met : "Erreur d'exécution '1004':Erreur définie par l'application ou par l'objet"
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.
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.
Hou pinaize!!! Dur dur de trouver cette erreur... En gras ci dessous...
Ç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.
Ç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 viens de lire qu'il fallait d'abord activer la feuille, avant la fonction(je suis pas sure de ca)
Ça marche, incroyable !!! MERCI
Je peux abuser par rapport au tri ?
Si tu as encore un peu de temps bien sur.
Je peux abuser par rapport au tri ?
Si tu as encore un peu de temps bien sur.
lors d'un enregistrement macro voici le code qui est généré par excel :
je sais pas si tous les parametres sont utiles.
et surtour choisir la "sélection "
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 "
AH purée non, j'ai une erreur.
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
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
Pour moi, le tri ne devrait pas se faire automatiquement à l'ouverture. C'est un choix que tu devrais laisser à l'utilisateur...
Mais effectivement, on peux faire une macro dans ce sens...
Mais effectivement, on peux faire une macro dans ce sens...
Excuse moi pijaku mais je comprends pas, pourquoi au début tout marchait bien et là le fait de choisir des colonnes à insérer fait tout merder ?
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
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
C'est quoi ces nomfic, nomfic2 etc ... Tu devais les changer pour mettre les noms de tes fichiers......... Comme ceci :
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
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
Ben non, je viens de faire ce que tu m'as dit et regarde ce que ça me fait :
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
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
Ben sur ce que je t'ai envoyé on se rend pas compte mais ca me mets dans le tableau "baseboulot1" "baseboulot2".
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 ?
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 ?