besoin d'aide pour macro Excel

  • Initiateur de la discussion Initiateur de la discussion Aurelie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Aurelie

Guest
J'aimerai savoir si quelqu'un pourrait m'aider:
J'ai un fichier Excel avec des donnees sous formes d'un tableau (en lignes et colonnes). (une 300ene de lignes!!)
J'aimerai reussir a enregistrer chaques lignes dans un fichier separe, avec pour titre la cellule de la 1ere colonne; sans avoir a copier-coller la ligne dans un nouveau fichier puis enregistrer en ayant a taper un nom.
existe-t-il une macro qui me permettrait de sauver chaque ligne et de reconnaitre la 1ere colonne de chaque ligne comme nom de fichier?

Merci d'avance pour votre aide

Aurelie

Si je n'ai pas ete claire, je peux reexpliquer!
 
Bonjour Aurélie

j'ai fait un petit truc tout simple


For i = 1 To 300

a = Cells(i, 1) ' definit le nom du fichier dans la cellule de la ligne i 1ere colonne

Rows("1:1").Select
Selection.Copy

Workbooks.Add ' crée un nouveau classeur

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=a, FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False

Next


Voilà .
Il suffit de la lancer à partir de la feuille ou se trouve tes données et le résultat est sauvegardé dans le même répertoire.

Cordialement

Cyber PAPY
 
Bonjour le forum,

J'ai un problème du même style mais beaucoup plus méchant... juste avant les fêtes... plus de temps pour les cadeaux.

J'ai un tableau environ 10 colonnes et de 10'000 à 12'000 lignes...
bref un monstre.

Colonne A = NomPrénom
Colonne B = Code du type C01, C02, C03, etc.
Cellule Z1 = "VPN novembre 2002"

Pour 1 NomPrénom ont trouve toujours le même Code Cxx.
Pour 1 Code on peut avoir plusieurs NomPrénom.

J'ai 240 NomPrénom.

Je cherche à créer 240 fichiers nommés "Cxx - NomPrénom - VPN novembre 2002.xls"
contenant chaqu'un les lignes correspondantes.

Je ne vois pas comment m'y prendre.
Si qq veut bien me donner un coup de pouce, je peux envoyer un petit
fichier exemple.
Merci d'avance
Cordialement

Victor
 
Salut Cyber Papy,

merci pour ton aide.
Je viens d'ecrire la macro mais elle ne veut pas tourner. En fait, je pense qu'il y a un probleme au niv du SaveAs.
Voici ce que j'ai tape:

For i = 1 To 10
a = Cells(i, 1)
Rows("1:1").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=a, FileFormat:=x1Normal, ReadOnlyRecommended:=False, CreateBackup:=False
Next
End Sub

Je recois un message d'erreur tel que:
Run time error 1004
method 'saveas' of object '_workbook' failed

Sais tu pourquoi?

Merci beaucoup pour ton aide.

Aurelie
 
Bonjour
Voila un bout de code qui sélectionne depuis la cellule A1 jusqu'à la derniére cellule de la colonne contenant une donnée.

Sub Macro2()
'
Dim ligne As Integer, colonne As Integer
Dim toto As String
Dim cellule As Variant
'
Workbooks("classeur1").Activate
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cellule In Selection
ligne = cellule.Row
toto = cellule.Value
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=toto, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Workbooks("classeur1").Activate
Rows(ligne).Copy
Workbooks(toto & ".XLS").Activate
ActiveCell.PasteSpecial
ActiveWorkbook.Save
ActiveWorkbook.Close
Next
End Sub
 
copie la macro suivante dans ton fichier source et lance la macro. Les fichiers sont créés dans le même répertoire que le fichier source. J'ai supposé que le nom donné dans la première colonne de chaque ligne est du type "NomFichier.xls". Si l'extension n'y est pas, dis-le moi pour que j'intègre ce test dans la procédure

Option Explicit

Sub CopieLignesDansFichier()
'Ti 11-12-02
Dim Plage As Range, Ligne As Range
Dim NomF As String
Dim WbkSource As Workbook, WbkCible As Workbook
Set WbkSource = ThisWorkbook
With ActiveSheet
Set Plage = .Range("A1", .Range("A65536").End(xlUp))
End With

Application.ScreenUpdating = False
For Each Ligne In Plage.Rows
NomF = Ligne.Cells(1, 1).Value

If NomF <> "" Then
Workbooks.Add
Set WbkCible = ActiveWorkbook
NomF = WbkSource.Path & "\" & NomF
With WbkCible
ActiveSheet.Range("A1").EntireRow.Value = Ligne.EntireRow.Value
'pour pouvoir écraser les fichiers qui portent déjà le même nom
'sans confirmation
'remettre une apostrophe devant la ligne suivante pour avoir
'un message d'alerte
Application.DisplayAlerts = False
.SaveAs NomF
Application.DisplayAlerts = True
.Close
End With
End If
Next Ligne
Application.ScreenUpdating = True
End Sub
 
Oops

J'ai envoyé mon brouillon

voici ce que j'aurais dû mettre







b = "xport.xls" ' ici tu mets le nom de ton fichier contenant les données


For i = 1 To 300

Windows(b).Activate

a = Cells(i, 1) ' definit le nom du fichier dans la cellule de la ligne i 1ere colonne

Rows(i).Select
Selection.Copy

Workbooks.Add ' crée un nouveau classeur

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=a, FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False

Next

End Sub



désolé Mes neurones n'aiment pas le froid
;-)
 
Merci Cyber Papy,

Tu me sauves!!!
La macro tourne super bien.

J'ai un dernier petit conseil a te demander:
Je viens de faire tourner ma macro et je me retrouve donc avec 300 fichiers ouverts.
Penses tu que je pourrais ajouter une ligne qui permettrait de fermer les fichiers? et si oui, laquelle?

Mille merci(s).

Aurelie
 
tout à fait possible
après la ligne :
ActiveWorkbook.SaveAs Filename:=a, FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False

il suffit de fermer le fichieravec l'instruction:
ActiveWorkbook.Close
 
Bonjour tous le monde,

Voilà, je n'ai jamais utilisé excel avec vba, je voudrais savoir comment faire
pour créer un bouton sur lequel je pourrais cliquer pour afficher un tableau,
et aussi comment faire des cases ou l'on doit rentrer un nombre, comment faire ensuite pour récupérer ce nombre dans un tableau et le traiter !

Si je pouvais avoir des exemples simples de ce genre de cas se serait super
sympha.

Merci d'avance

Gilles
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
559
Réponses
7
Affichages
1 K
Retour