Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction & creation fichier

4 réponses
Avatar
Anaïs
Bonjour,

Je sollicite votre aide pour résoudre mon problème.

J’ai une feuille Excel :

(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40
Pays b 30 20 10
Pays c 23 23 23

J’aimerai extraire pour chaque pays le CA des produits. J’aimerai que chaque
extraction apparaisse dans un nouveau fichier.

J’aurai donc au final un fichier par pays
Fichier 1
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40

Fichier 2
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays b 30 20 10

Merci de votre aide

Anais

4 réponses

Avatar
Fred.M.
Bonjour Anaïs,
Je ne crains que tu ne doives avoir recours pour ton problème à notre cher
VBA. Je te propose ci-dessous le module suivant, probablement perfectible
selon ton besoin. Je pars de l'hypothèse que ton tableau se situe sur Feuil1
et commence en ligne 1:

Sub Export_Donnees()
Dim Ligne as Integer
Dim NbreLigne as Integer
Dim Colonne as Integer

' On fige l'écran pour éviter un clignottement pénible
Application.ScreenUpdating = False
' On repère le nombre de ligne total du bloc du tableau
NbreLigne = Range("B1").CurrentRegion.Rows.Count
' On démarre la recopie de données située en ligne 2
Ligne = 2
Do While (Ligne <= NbreLigne)
' Création d'un nouveau Classeur
WorkBooks.Add
' Recopie des en-têtes
Range("B1").Value = "Produit A"
Range("C1").Value = "Produit B"
Range("D1").Value = "Produit C"
' Recopie des 4 valeurs
For Colonne = 1 to 4
WorkBooks(2).Sheets("Feuil1").Range("A2").Value =
WorkBooks(1).Sheets("Feuil1").Cells(Ligne,Colonne).Value
Next
' Sauvegarde et fermeture du fichier cible
ActiveWorkBook.SaveAs "D:MonCheminFichier" & Ligne & ".XLS"
ActiveWorkBook.Close
' On passe à la ligne suivante
Ligne = Ligne+1
Loop
End sub

Et voilou !
En espérant faire avancer ton schmilblick...

Fred.M.



Bonjour,

Je sollicite votre aide pour résoudre mon problème.

J’ai une feuille Excel :

(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40
Pays b 30 20 10
Pays c 23 23 23

J’aimerai extraire pour chaque pays le CA des produits. J’aimerai que chaque
extraction apparaisse dans un nouveau fichier.

J’aurai donc au final un fichier par pays
Fichier 1
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40

Fichier 2
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays b 30 20 10

Merci de votre aide

Anais



Avatar
Fred.M.
J'ai oublié à la fin de défiger l'écran :-)
Application.ScreenUpdating = False
(à mettre après le loop)

Fred.M


Bonjour,

Je sollicite votre aide pour résoudre mon problème.

J’ai une feuille Excel :

(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40
Pays b 30 20 10
Pays c 23 23 23

J’aimerai extraire pour chaque pays le CA des produits. J’aimerai que chaque
extraction apparaisse dans un nouveau fichier.

J’aurai donc au final un fichier par pays
Fichier 1
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40

Fichier 2
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays b 30 20 10

Merci de votre aide

Anais



Avatar
Anaïs
Merci beaucoup,
jai effectivement un peu adapté le vba à mes besoins mais cela m'aide bien
bonen journée

anais


Bonjour Anaïs,
Je ne crains que tu ne doives avoir recours pour ton problème à notre cher
VBA. Je te propose ci-dessous le module suivant, probablement perfectible
selon ton besoin. Je pars de l'hypothèse que ton tableau se situe sur Feuil1
et commence en ligne 1:

Sub Export_Donnees()
Dim Ligne as Integer
Dim NbreLigne as Integer
Dim Colonne as Integer

' On fige l'écran pour éviter un clignottement pénible
Application.ScreenUpdating = False
' On repère le nombre de ligne total du bloc du tableau
NbreLigne = Range("B1").CurrentRegion.Rows.Count
' On démarre la recopie de données située en ligne 2
Ligne = 2
Do While (Ligne <= NbreLigne)
' Création d'un nouveau Classeur
WorkBooks.Add
' Recopie des en-têtes
Range("B1").Value = "Produit A"
Range("C1").Value = "Produit B"
Range("D1").Value = "Produit C"
' Recopie des 4 valeurs
For Colonne = 1 to 4
WorkBooks(2).Sheets("Feuil1").Range("A2").Value =
WorkBooks(1).Sheets("Feuil1").Cells(Ligne,Colonne).Value
Next
' Sauvegarde et fermeture du fichier cible
ActiveWorkBook.SaveAs "D:MonCheminFichier" & Ligne & ".XLS"
ActiveWorkBook.Close
' On passe à la ligne suivante
Ligne = Ligne+1
Loop
End sub

Et voilou !
En espérant faire avancer ton schmilblick...

Fred.M.



Bonjour,

Je sollicite votre aide pour résoudre mon problème.

J’ai une feuille Excel :

(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40
Pays b 30 20 10
Pays c 23 23 23

J’aimerai extraire pour chaque pays le CA des produits. J’aimerai que chaque
extraction apparaisse dans un nouveau fichier.

J’aurai donc au final un fichier par pays
Fichier 1
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40

Fichier 2
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays b 30 20 10

Merci de votre aide

Anais





Avatar
Anaïs
Merci beaucoup,
jai effectivement un peu adapté le vba à mes besoins mais cela m'aide bien
bonen journée

anais


Bonjour Anaïs,
Je ne crains que tu ne doives avoir recours pour ton problème à notre cher
VBA. Je te propose ci-dessous le module suivant, probablement perfectible
selon ton besoin. Je pars de l'hypothèse que ton tableau se situe sur Feuil1
et commence en ligne 1:

Sub Export_Donnees()
Dim Ligne as Integer
Dim NbreLigne as Integer
Dim Colonne as Integer

' On fige l'écran pour éviter un clignottement pénible
Application.ScreenUpdating = False
' On repère le nombre de ligne total du bloc du tableau
NbreLigne = Range("B1").CurrentRegion.Rows.Count
' On démarre la recopie de données située en ligne 2
Ligne = 2
Do While (Ligne <= NbreLigne)
' Création d'un nouveau Classeur
WorkBooks.Add
' Recopie des en-têtes
Range("B1").Value = "Produit A"
Range("C1").Value = "Produit B"
Range("D1").Value = "Produit C"
' Recopie des 4 valeurs
For Colonne = 1 to 4
WorkBooks(2).Sheets("Feuil1").Range("A2").Value =
WorkBooks(1).Sheets("Feuil1").Cells(Ligne,Colonne).Value
Next
' Sauvegarde et fermeture du fichier cible
ActiveWorkBook.SaveAs "D:MonCheminFichier" & Ligne & ".XLS"
ActiveWorkBook.Close
' On passe à la ligne suivante
Ligne = Ligne+1
Loop
End sub

Et voilou !
En espérant faire avancer ton schmilblick...

Fred.M.



Bonjour,

Je sollicite votre aide pour résoudre mon problème.

J’ai une feuille Excel :

(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40
Pays b 30 20 10
Pays c 23 23 23

J’aimerai extraire pour chaque pays le CA des produits. J’aimerai que chaque
extraction apparaisse dans un nouveau fichier.

J’aurai donc au final un fichier par pays
Fichier 1
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays a 50 60 40

Fichier 2
(en ligne) Produit A, Produit B, Produit C
(En colonne)
Pays b 30 20 10

Merci de votre aide

Anais