Petit soucis VBA/Excel
Fermé
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
-
Modifié par 2000Kennedy le 9/09/2010 à 10:51
2000Kennedy Messages postés 40 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 16 novembre 2010 - 14 sept. 2010 à 11:40
2000Kennedy Messages postés 40 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 16 novembre 2010 - 14 sept. 2010 à 11:40
A voir également:
- Petit soucis VBA/Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Excel trier du plus grand au plus petit - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
4 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
9 sept. 2010 à 10:57
9 sept. 2010 à 10:57
Bonjour,
Combien (environ) as tu de lignes dans ton tableau source ?
Veux tu absolument pour chaque pays tous les produits, tous les produits 2, ou est ce sans importance ?
historique sur 13 mois: on commence toujours en Jan et la dernière colonne est donc encore Jan ?
Pour être + efficace, peux tu joindtre un extrait de ton classeur (données anonymes sur quelques lignes suffisent) sur
http://cijoint.fr/
et coller le lien proposé dans ton message
dans l'attente
Michel
Combien (environ) as tu de lignes dans ton tableau source ?
Veux tu absolument pour chaque pays tous les produits, tous les produits 2, ou est ce sans importance ?
historique sur 13 mois: on commence toujours en Jan et la dernière colonne est donc encore Jan ?
Pour être + efficace, peux tu joindtre un extrait de ton classeur (données anonymes sur quelques lignes suffisent) sur
http://cijoint.fr/
et coller le lien proposé dans ton message
dans l'attente
Michel
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
2
9 sept. 2010 à 11:14
9 sept. 2010 à 11:14
Bonjour michel,
Dans mon tableau source cela varie selon les onglets, j'ai entre 20 et 1000 lignes au total j'ai 11 000 lignes, mais par la suite il y aura moins de lignes, vu que ce sera mis a jour mois après mois, oui j'ai besoin pour chaque pays de tous les produits
Pour ce qui est de l'historique, oui ce sera de janvier à janvier.
Je n'ai pas accès à ce site pour joindre mon fichier ;) proxy sécurisé :(.
dsl :( Pour le moment je crée l'historique en fait.
En fait c'est à destination d'une BDD.
les tableaux que j'ai au départ doivent être remis en forme de manière à pouvoir ensuite les traduire et les liés à access.
Il faut donc que mon tableau regroupant l'ensemble
Dans mon tableau source cela varie selon les onglets, j'ai entre 20 et 1000 lignes au total j'ai 11 000 lignes, mais par la suite il y aura moins de lignes, vu que ce sera mis a jour mois après mois, oui j'ai besoin pour chaque pays de tous les produits
Pour ce qui est de l'historique, oui ce sera de janvier à janvier.
Je n'ai pas accès à ce site pour joindre mon fichier ;) proxy sécurisé :(.
dsl :( Pour le moment je crée l'historique en fait.
En fait c'est à destination d'une BDD.
les tableaux que j'ai au départ doivent être remis en forme de manière à pouvoir ensuite les traduire et les liés à access.
Il faut donc que mon tableau regroupant l'ensemble
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 9/09/2010 à 11:56
Modifié par michel_m le 9/09/2010 à 11:56
Re,
question + précise, excuse moi:
Veux tu absolument pour chaque pays regrouper tous les produits 1, puis tous les produits 2, etc..ou est ce sans importance ?
le code serait plus compliqué surtout que je doute d'un tri final sur 11000 lignes et 16 colonnes
est ce qu'au départ tous les produits sont déjà regroupés par pays (tout France, puis tout Suisse, eetc...?
question + précise, excuse moi:
Veux tu absolument pour chaque pays regrouper tous les produits 1, puis tous les produits 2, etc..ou est ce sans importance ?
le code serait plus compliqué surtout que je doute d'un tri final sur 11000 lignes et 16 colonnes
est ce qu'au départ tous les produits sont déjà regroupés par pays (tout France, puis tout Suisse, eetc...?
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
2
9 sept. 2010 à 11:57
9 sept. 2010 à 11:57
Oui j'aimerais tous les produits. Au départ oui ils le sont. Mes tables se présentent de la même manière que les tableaux que j'ai essayer de simuler dans le post.
En fait sur ma page finale, je veux récupérer toutes les informations des onglets précédents. Mais en gardant les correspondances de valeurs bien sur. une fois que j'ai toutes les informations en colonne, je voudrais les traduire pour les rendre accessibles à ma BDD access,
Au final ce que je suis en train de faire sera mis à jour une fois par mois, j'aurais juste à cliquer sur MAJ et le pc va taffer pendant xtemps, à priori cela n'a pas d'importance pour le moment.
En fait sur ma page finale, je veux récupérer toutes les informations des onglets précédents. Mais en gardant les correspondances de valeurs bien sur. une fois que j'ai toutes les informations en colonne, je voudrais les traduire pour les rendre accessibles à ma BDD access,
Au final ce que je suis en train de faire sera mis à jour une fois par mois, j'aurais juste à cliquer sur MAJ et le pc va taffer pendant xtemps, à priori cela n'a pas d'importance pour le moment.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
9 sept. 2010 à 12:00
9 sept. 2010 à 12:00
OK, merci,
proposition certainement demain fin de matinée (y'a du boulot mine de rien surtout en regroupant par type de produits)
proposition certainement demain fin de matinée (y'a du boulot mine de rien surtout en regroupant par type de produits)
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
2
9 sept. 2010 à 12:22
9 sept. 2010 à 12:22
Merci bcp :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 sept. 2010 à 11:52
10 sept. 2010 à 11:52
dans l'apremidi:boucles imbriquées pas tristes et téléphone qui n'arr^te pas (sinon, ce serait pas drôle)
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
2
10 sept. 2010 à 12:00
10 sept. 2010 à 12:00
Super merci :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 sept. 2010 à 13:03
10 sept. 2010 à 13:03
tu appelles ton pb un petit souci ? hé bé...
regarde si cette maquette te convient
http://www.cijoint.fr/cjlink.php?file=cj201009/cijoMb5hZp.xls
moi pas: je n'aurais mis qu'une ligne par pays-produit-type pour la récap, mais j'ai éxécuté suivant ta demande; bien que pour envoyé dans access, il y sera facile de faire une requete avec "group by" mais...sur excel, la philosophie du code serait assez différente!
regarde si cette maquette te convient
http://www.cijoint.fr/cjlink.php?file=cj201009/cijoMb5hZp.xls
moi pas: je n'aurais mis qu'une ligne par pays-produit-type pour la récap, mais j'ai éxécuté suivant ta demande; bien que pour envoyé dans access, il y sera facile de faire une requete avec "group by" mais...sur excel, la philosophie du code serait assez différente!
2000Kennedy
Messages postés
40
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
16 novembre 2010
2
10 sept. 2010 à 14:10
10 sept. 2010 à 14:10
Merci bcp :) je regarderais ce soir je suis bloquer par le proxy de la boite :((...
C'est très gentil de votre part en tout cas :)
C'est très gentil de votre part en tout cas :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 sept. 2010 à 14:57
10 sept. 2010 à 14:57
en attendant voila les codes:
Sub trier_croissant(tablo)
'd'après Silkyroad, https://silkyroad.developpez.com/
Dim i As Long, x As Long, k As Long, tempo As String
For i = 0 To UBound(tablo)
x = i
For k = x + 1 To UBound(tablo)
If tablo(k) <= tablo(x) Then x = k
Next k
If i <> x Then
tempo = tablo(x): tablo(x) = tablo(i): tablo(i) = tempo
End If
Next i
End Sub
Option Explicit Sub synthetiser_pays() Dim test 'déclarations pays Dim dico As Object Dim nbre As Byte, cptr As Integer, cptr_dico As Integer Dim derlig As Integer, ref As String Dim liste 'délarations recensement Dim cptr_l As Integer, nbre_p As Integer, lig As Integer, cptr_p As Integer, cptr_c As Integer, cptr_t As Integer, cptr_fin As Integer Dim pays As String Dim tablo_cat, tablo_type, tablo_fin Dim col As Byte Set dico = CreateObject("scripting.dictionary") nbre = ThisWorkbook.Sheets.Count - 1 ' la feuille récapitulative est en fin de classeur '------------------------------------crée dico des pays For cptr = 1 To nbre With Sheets(cptr) derlig = .Range("A65536").End(xlUp).Row For cptr_dico = 3 To derlig ref = Application.WorksheetFunction.Proper(.Cells(cptr_dico, 1)) ' force le pays en nom propre If Not dico.Exists(ref) Then dico.Add ref, ref End If Next End With Next 'trie les pays par ordre apha liste = dico.items trier_croissant liste '-------recensement par pays 'initialisation des array tablo_cat = Array("cat produit 1", "cat produit 2") tablo_type = Array("type 1", "type 2", "type 3") ReDim tablo_fin(15, 0) For cptr_l = 0 To UBound(liste) pays = liste(cptr_l) ' recherche le pays dans les feuilles For cptr = 1 To nbre With Sheets(cptr) 'nombre de fois où le pays est indiqué dans la feuille derlig = .Range("A65536").End(xlUp).Row nbre_p = Application.CountIf(.Range("A3:A" & derlig), pays) If nbre_p > 0 Then ' mémorise dans le tableau lig = .Columns(1).Find(pays, .Range("A2"), xlValues).Row 'mémorise le pays For cptr_c = 0 To UBound(tablo_cat) 'memorise par cat produit For cptr_t = 0 To UBound(tablo_type) ' morise par type tablo_fin(0, cptr_fin) = .Cells(lig, 1) 'pays tablo_fin(1, cptr_fin) = tablo_cat(cptr_c) ' catégorie tablo_fin(2, cptr_fin) = tablo_type(cptr_t) ' typte For cptr_p = 0 To nbre_p - 1 col = Sheets("recap").Rows(2).Find(.Cells(lig + cptr_p, 2), Range("A2")).Column ' mois tablo_fin(col - 1, cptr_fin) = .Cells(lig + cptr_p, 3 * (cptr_c + 1) + cptr_t) 'mémorise la valeur dans la colonne mois Next cptr_fin = cptr_fin + 1 ReDim Preserve tablo_fin(15, cptr_fin) Next Next End If End With Sheets("recap").Range("A3").Resize(cptr_fin + 1, 16) = Application.Transpose(tablo_fin) Next Next End Sub
Sub trier_croissant(tablo)
'd'après Silkyroad, https://silkyroad.developpez.com/
Dim i As Long, x As Long, k As Long, tempo As String
For i = 0 To UBound(tablo)
x = i
For k = x + 1 To UBound(tablo)
If tablo(k) <= tablo(x) Then x = k
Next k
If i <> x Then
tempo = tablo(x): tablo(x) = tablo(i): tablo(i) = tempo
End If
Next i
End Sub