Bonjour,
Cela fait une semaine que je commence à travailler avec du VBA, mon niveau n'est donc pas très élevé, et j'ai quelques difficultés...J'ai perdu beaucoup de temps à chercher une solution, n'en ayant pas trouvé, me voila :x. Je travail avec Excel 2003.
J'ai un Tableau sous Excel, qui possède en colonne 2 informations différente, provenance et date. Sur 2 lignes, j'ai la catégorie du produit et le type de produit, c'est à dire que chaque catégorie est divisée en 3 types de produits. Je souhaiterais retrouver sur une ligne l'ensemble de ces informations, chaque colonne correspondrait à respectivement la provenance, la date, la catégorie du produit, le type de produit. Le but étant de faciliter la lecture au moment du basculement des informations dans ma BDD.
Bien sur des valeurs sont liées au tableau de départ et je souhaiterais les retrouver dans le tableau d'arrivée.
------------------------ Cat produit 1-----------------Cat produit 2
provenance-date---type1----type2-type3----------type1--type2-type3
france-------jan------3--------1-----2 -------------2------1------3
france-------fev------1--------5-----0 -------------8-----2------1
espagne------jan-----x---------x---- x--------------x-----x-------x
espagne------fev -----x---------x----x--------------x-----x------x
ça c'est le tableau de départ et je voudrais:
provenance---cat produit---type---jan--fev
france--------Cat produit1-type1---3----1
france--------Cat produit1-type2---1----5
france--------Cat produit1-type3---2----0
france--------Cat produit2-type1---2----8
etc------------etc----------etc
Sachant que j'ai un nombre i de tableaux de départ qui se trouvent dans des onglets différents et un seul tableau d'arrivée qui est lui aussi sur un onglet à lui et bien sur j'ai plusieurs catégories de produits. plusieurs provenances. 13 mois d'historique. :x Il faut que mon tableux d'arrivée regroupe l'ensemble des données des onglets.
Est ce qu'il existe une fonction vba ou une manip excel qui me permettrait de transformer le tableau 1 dans la forme du tableau 2 Sachant que les données sont liées ? Comment m'y prendre? C'est finalement un peu comme une transposition que je cherche à faire non?.
J'ai commencer à faire quelquechose mais bon bien sur ça marche pas. lol
Sub Copie(Nb_onglet)
Dim ProchaineLigneVide As Integer
For i = 1 To Nb_onglet
sheets(i).activate
With Sheets("feuille1")
ProchaineLigneVide = .Range("A65536").End(xlUp).Row + 1
.Range("A2" & ProchaineLigneVide).Value = ProchaineLigneVide
.Range("B2" & ProchaineLigneVide).Value = Sheets(i)Range("A5").Value
.Range("C2" & ProchaineLigneVide).Value = Sheets(i).").Range("B5").Value
.Range("D2" & ProchaineLigneVide).Value = Sheets(i).").Range("C5").Value
.Range("E2" & ProchaineLigneVide).Value = Sheets(i).").Range("D5").Value
.Range("F2" & ProchaineLigneVide).Value = Sheets(i).").Range("A8").Value
.Range("G2" & ProchaineLigneVide).Value = Sheets(i).").Range("B8").Value
End With
End Sub
Merci d'avance 🙂
Cela fait une semaine que je commence à travailler avec du VBA, mon niveau n'est donc pas très élevé, et j'ai quelques difficultés...J'ai perdu beaucoup de temps à chercher une solution, n'en ayant pas trouvé, me voila :x. Je travail avec Excel 2003.
J'ai un Tableau sous Excel, qui possède en colonne 2 informations différente, provenance et date. Sur 2 lignes, j'ai la catégorie du produit et le type de produit, c'est à dire que chaque catégorie est divisée en 3 types de produits. Je souhaiterais retrouver sur une ligne l'ensemble de ces informations, chaque colonne correspondrait à respectivement la provenance, la date, la catégorie du produit, le type de produit. Le but étant de faciliter la lecture au moment du basculement des informations dans ma BDD.
Bien sur des valeurs sont liées au tableau de départ et je souhaiterais les retrouver dans le tableau d'arrivée.
------------------------ Cat produit 1-----------------Cat produit 2
provenance-date---type1----type2-type3----------type1--type2-type3
france-------jan------3--------1-----2 -------------2------1------3
france-------fev------1--------5-----0 -------------8-----2------1
espagne------jan-----x---------x---- x--------------x-----x-------x
espagne------fev -----x---------x----x--------------x-----x------x
ça c'est le tableau de départ et je voudrais:
provenance---cat produit---type---jan--fev
france--------Cat produit1-type1---3----1
france--------Cat produit1-type2---1----5
france--------Cat produit1-type3---2----0
france--------Cat produit2-type1---2----8
etc------------etc----------etc
Sachant que j'ai un nombre i de tableaux de départ qui se trouvent dans des onglets différents et un seul tableau d'arrivée qui est lui aussi sur un onglet à lui et bien sur j'ai plusieurs catégories de produits. plusieurs provenances. 13 mois d'historique. :x Il faut que mon tableux d'arrivée regroupe l'ensemble des données des onglets.
Est ce qu'il existe une fonction vba ou une manip excel qui me permettrait de transformer le tableau 1 dans la forme du tableau 2 Sachant que les données sont liées ? Comment m'y prendre? C'est finalement un peu comme une transposition que je cherche à faire non?.
J'ai commencer à faire quelquechose mais bon bien sur ça marche pas. lol
Sub Copie(Nb_onglet)
Dim ProchaineLigneVide As Integer
For i = 1 To Nb_onglet
sheets(i).activate
With Sheets("feuille1")
ProchaineLigneVide = .Range("A65536").End(xlUp).Row + 1
.Range("A2" & ProchaineLigneVide).Value = ProchaineLigneVide
.Range("B2" & ProchaineLigneVide).Value = Sheets(i)Range("A5").Value
.Range("C2" & ProchaineLigneVide).Value = Sheets(i).").Range("B5").Value
.Range("D2" & ProchaineLigneVide).Value = Sheets(i).").Range("C5").Value
.Range("E2" & ProchaineLigneVide).Value = Sheets(i).").Range("D5").Value
.Range("F2" & ProchaineLigneVide).Value = Sheets(i).").Range("A8").Value
.Range("G2" & ProchaineLigneVide).Value = Sheets(i).").Range("B8").Value
End With
End Sub
Merci d'avance 🙂