BESOIN D'AIDE URGENTE MACROS EXCEL 2003
Fermé
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
-
6 nov. 2009 à 12:20
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 nov. 2009 à 11:12
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 nov. 2009 à 11:12
A voir également:
- BESOIN D'AIDE URGENTE MACROS EXCEL 2003
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
26 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
6 nov. 2009 à 14:20
6 nov. 2009 à 14:20
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
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
6 nov. 2009 à 14:37
6 nov. 2009 à 14:37
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
6 nov. 2009 à 14:53
6 nov. 2009 à 14:53
C'est encore plus facile... Les chemins d'accès et noms de fichiers sont fixes?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
6 nov. 2009 à 15:16
6 nov. 2009 à 15:16
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...
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
6 nov. 2009 à 16:49
6 nov. 2009 à 16:49
Merci beaucoup pour votre aide, j'ai pris le fichier et les démarches à suivre ; je vais les tester chez moi et je donnerais des nouvelles dès lundi.
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 11:10
9 nov. 2009 à 11:10
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"...
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 11:48
9 nov. 2009 à 11:48
Ben en fin de compte je ne sais pas, car les tableaux que je dois importer sur ma feuille, sont des tableaux qui sont alimentés tous les jours.
Et j'espère que j'ai mis au on endroit la cible de mon tableau base boulot1.xls
Et j'espère que j'ai mis au on endroit la cible de mon tableau base boulot1.xls
pou pouille
Messages postés
207
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
20 juillet 2012
31
9 nov. 2009 à 12:16
9 nov. 2009 à 12:16
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 12:17
9 nov. 2009 à 12:17
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"
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 14:07
9 nov. 2009 à 14:07
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 14:20
9 nov. 2009 à 14:20
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
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 14:42
9 nov. 2009 à 14:42
MERCI BEAUCOUP, ça marche.
Si je peux abuser, comment je lui dit de ne pas prendre la première ligne, vu que c'est l'entête des tableaux ?
Si je peux abuser, comment je lui dit de ne pas prendre la première ligne, vu que c'est l'entête des tableaux ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 14:49
9 nov. 2009 à 14:49
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)
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 14:43
9 nov. 2009 à 14:43
Et aussi, est ce que c'est possible qu'il exécute la macro dès l'ouverture de mon tableau ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 14:54
9 nov. 2009 à 14:54
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"
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 14:47
9 nov. 2009 à 14:47
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 14:55
9 nov. 2009 à 14:55
Oui c'est fait exprès. Il n'y a pas d'utilité à les laisser ouvert...
Pour qu'ils ne se ferment pas il convient d'enlever les lignes :
WorkBooks("gnagnagna").Close
Pour qu'ils ne se ferment pas il convient d'enlever les lignes :
WorkBooks("gnagnagna").Close
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
9 nov. 2009 à 15:26
9 nov. 2009 à 15:26
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 15:27
9 nov. 2009 à 15:27
oui
Comment souhaitez vous les sélectionner? Une boîte de dialogue s'ouvrant après l'ouverture du classeur concerné?
Comment souhaitez vous les sélectionner? Une boîte de dialogue s'ouvrant après l'ouverture du classeur concerné?
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
9 nov. 2009 à 15:47
9 nov. 2009 à 15:47
Ben en fin de compte, une fois que je lui aurait dit qu'elle colonne il devra importer (à la macro), ça ne changera plus.
Ces quatre tableaux devront s'importer automatiquement (vu que c'est mon boss qui aura la lecture de ce tableau final).
Ces quatre tableaux devront s'importer automatiquement (vu que c'est mon boss qui aura la lecture de ce tableau final).
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 15:53
9 nov. 2009 à 15:53
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)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
9 nov. 2009 à 16:21
9 nov. 2009 à 16:21
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)
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
9 nov. 2009 à 16:33
9 nov. 2009 à 16:33
Tout à l'air de marcher, je n'en reviens pas, je vais continuer à tester chez moi et je te tiendrais au courant.
Franchement c'est génial, mille fois merci.
Franchement c'est génial, mille fois merci.
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 10:01
10 nov. 2009 à 10:01
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 ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
10 nov. 2009 à 10:14
10 nov. 2009 à 10:14
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?
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 10:38
10 nov. 2009 à 10:38
Ç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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 10:50
10 nov. 2009 à 10:50
Ou cela bloque t'il? Quel est le message d'erreur?
Salut pou pouille,
Non il ne faut pas enlever ce point. En fait la macro, pour l'instant, a comme classeur actif "baseboulot3.xls". Or nous voulons "mémoriser" la dernière ligne de la feuille 1 du classeur baseboulot.xls. D'où le point.
Salut pou pouille,
Non il ne faut pas enlever ce point. En fait la macro, pour l'instant, a comme classeur actif "baseboulot3.xls". Or nous voulons "mémoriser" la dernière ligne de la feuille 1 du classeur baseboulot.xls. D'où le point.
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
10 nov. 2009 à 10:57
10 nov. 2009 à 10:57
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.
pou pouille
Messages postés
207
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
20 juillet 2012
31
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
10 nov. 2009 à 11:04
10 nov. 2009 à 11:04
méacoulpa, j'avais pas bien fait attention.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 11:36
10 nov. 2009 à 11:36
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.
pou pouille
Messages postés
207
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
20 juillet 2012
31
10 nov. 2009 à 10:45
10 nov. 2009 à 10:45
je viens de lire qu'il fallait d'abord activer la feuille, avant la fonction(je suis pas sure de ca)
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 11:54
10 nov. 2009 à 11:54
Ç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.
pou pouille
Messages postés
207
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
20 juillet 2012
31
10 nov. 2009 à 11:58
10 nov. 2009 à 11:58
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 "
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 12:09
10 nov. 2009 à 12:09
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
pou pouille
Messages postés
207
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
20 juillet 2012
31
10 nov. 2009 à 12:12
10 nov. 2009 à 12:12
c'est normale puisque
donc déja il faut que tu choisisse la plage de la séléction, ensuite tu décal tu remplace le A1 par A2
selectionil selectionne tout le tableau ,
donc déja il faut que tu choisisse la plage de la séléction, ensuite tu décal tu remplace le A1 par A2
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
10 nov. 2009 à 12:14
10 nov. 2009 à 12:14
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...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
10 nov. 2009 à 12:51
10 nov. 2009 à 12:51
Un exemple de ce qui peux être fait : ici
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 13:35
10 nov. 2009 à 13:35
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
10 nov. 2009 à 14:37
10 nov. 2009 à 14:37
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
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 15:07
10 nov. 2009 à 15:07
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 745
>
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 15:14
10 nov. 2009 à 15:14
Ben c'est bien non? Que faut-il de plus?
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
10 nov. 2009 à 15:34
10 nov. 2009 à 15:34
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 ?
itreal
Messages postés
30
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
16 novembre 2009
10 nov. 2009 à 16:30
10 nov. 2009 à 16:30
J'en ai marre, j'ai un nouveau problème.
Il ne prend pas toutes les lignes de mon "baseboulot3"
Il ne prend pas toutes les lignes de mon "baseboulot3"