Répéter une base de donnée sur plusieurs codes clients

bonjour

je viens vers vous pour me dépanner car notre informaticien qui devait nous développer une base de donnée sur Excel est parti sans laisser de signe de vie....

je ne suis pas du tout calé dans Excel, il faudrait que je puisse répéter plusieurs codes articles et prix sur chaque code clients comme ci-joint dans mon fichier (j'espère que vous arriverez à me comprendre).

ceci m'aiderai beaucoup car j' ai plus de 1000 codes clients..., je vous remercie d'avance pour votre aide.

cordialement

Julien

Bonjour et bienvenue sur le forum

Je ne vois pas très bien ce que tu attends.

Il faudrait que tu mettes sur une feuilles tes données de départ et sur une autre un exemple de ce que tu veux en faire.

Bye !

Bonjour julien8952, gmb


gmb a écrit :

Je ne vois pas très bien ce que tu attends.Il faudrait que tu mettes sur une feuilles tes données de départ et sur une autre un exemple de ce que tu veux en faire.

bis repetita

PS/ tu es certain que c'est bien un informaticien a fait ça ! Combien de temps est-il resté ?

Bonjour à tous,

En effet, je ne suis pas sur qu'un informaticien ait pu faire ça! ^^ Mais je crois avoir compris que ce dernier est parti avant même de commencer (ceci expliquant probablement celà)

Et je crois avoir compris;

Il s'agit de "spliter" les 93 premières valeurs(col B et C) pour chaque différents numéro client en colonne A.

Si c'est bien de ça dont il s'agit, vous trouverez en PJ de ce message votre base de donnée avec les données "splitées" sur vos différents code clienst. A vérifier cependant!

Yann

Edit : En fait je viens de m’apercevoir que le fichier en question n'était pas joignable, ci joint donc, la macro qui permet de spliter les codes clients.

Sub BDD()

Dim i As Long, j As Long, u As Long, v As Long, w As Long
Dim tabentree() As Variant, lg As Long
Dim tabsortie(138000, 2) As String

tabentree = ActiveSheet.Range("A2:C2000").Value

For i = 1 To 93
    For j = 1 To 3

    tabsortie(i - 1, j - 1) = tabentree(i, j)

    Next j

    v = v + 1

Next i

For i = 94 To 1154
w = v
For u = v To v + 91
tabsortie(u, 0) = tabentree(i, 1)
    For j = 2 To 3
    tabsortie(u, j - 1) = tabsortie(u - w, j - 1)
    Next j
    v = v + 1
Next u

Next i

ActiveSheet.Range("E1:G138000").Value = tabsortie

End Sub

bonjour Yann

merci bien de votre aide

l'informaticien devait faire ce fichier mais il n' a rien fait du tout.

c est moi qui est commencé ce fichier Excel mais vu que je suis novice en informatique je n'arrive pas à faire ce genre de programmation.

vous avez tout compris à ma demande il faut "spliter" les 93 premières valeur de la colonne B et C pour chaque code clients de la colonne A.....

par contre je n'ai jamais fait ou vu de macro (sauf le poisson )

si vous pouviez me refaire une pièce jointe ou m'expliquer si ca ne vous dérange pas...

julien

Haha!

J'ai essayé de lier le fichier obtenu sur mon message précédent, mais il était un peu trop lourd..! Et comme je n'ai plus le même PC je n'ai plus accès à ce que j'ai fait.

Alors comme ce n'est jamais trop tard pour s'y mettre voici le process pour integrer la macro que je t'ai fait plus haut:

Etape 1:

  • Ouvrir ton fichier excel
  • Appuyer sur Alt+F11
-> Une nouvelle fenêtre va s'ouvrir

- rester sur cette fenetre

Etape 2:

  • Clic droit sur la colonne de gauche sur le mot "Thisworkbook"
  • Cliquer sur Insertion, puis module
-> Un nouveau mot va apparaitre "Module1"

- Double cliquer dessus

-> Une page blanche va apparaitre

Etape 3:

  • Copier le code que je t'ai fournis plus haut
  • Le coller dans la feuille blanche
  • Positionner ton curseur sur la première ligne du code ("Sub BDD")
  • Appuyer sur F5

Etape 4 :

  • Revenir sur ton fichier Excel
  • Admirer le résultat

En espérant que ce soit assez clair, dans le cas contraire, j’intégrerai ça demain!

Yann

merci Yann

j'ai réussi a suivre tes conseils jusqu'à l'étape 3

Positionner ton curseur sur la première ligne du code ("Sub BDD")

- Appuyer sur F5

quand j'appuie sur f5 il ne se passe rien...

donc je retourne sur mon fichier excel et je lance le macro et il se passe cela en PJ

erreur syntaxe et le "Sub BDD" est surligné en jaune.

julien

erreur syntaxe

Salut Julien,

Salut l'équipe!

Au-delà de l'exercice, je ne vois pas l'intérêt de recopier ces codes identiques pour chaque client... s'ils restent identiques!!

Pourquoi ne pas organiser ces codes en lignes et les clients en colonnes avec leur prix?

Tu vas me dire que ce n'est pas mon boulot et tu auras bien raison...

Moi, ce que j'en dis, hein!

Private Sub cmdGO_Click()
'
Dim tData(), tClients, tCodes
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
tClients = Range("A94:A" & iRow).Value
tCodes = Range("A2:C93").Value
'
Application.ScreenUpdating = False
'
For x = 1 To UBound(tClients)
    For y = 1 To UBound(tCodes)
        tCodes(y, 1) = tClients(x, 1)
    Next
    Range("A" & 2 + (x * 92)).Resize(92, 3).Value = tCodes
    Range("A" & 2 + (x * 92)).Resize(92, 1).Interior.Color = Range("B" & 2 + (x * 92) - 1).Interior.Color
    Range("B" & 2 + (x * 92)).Resize(92, 2).Interior.Color = Range("A" & 2 + (x * 92) - 1).Interior.Color
Next
'
Application.ScreenUpdating = True
'
End Sub

Par pitié, ne clique pas une deuxième fois sur le bouton! 100 codes qui se recopieraient 100.000 fois...

Si le résultat t'agrée, clic-droit sur le bouton et... éliminer! Le code se trouve dans le module de la feuille 'Code tarifs'.

A+

12bdd-julien.xlsm (33.64 Ko)

Bonjour le fil

curulis57 a écrit :

Au-delà de l'exercice, je ne vois pas l'intérêt de recopier ces codes identiques pour chaque client... s'ils restent identiques!!Pourquoi ne pas organiser ces codes en lignes et les clients en colonnes avec leur prix?

QED tout à fait d'accord curulis57 ! en gros tu voudrais dire "il faudrait faire une base de données" ?

Bonjour le fil,

Je suis assez surpris que le code te renvois une erreur.. De mon coté tout fonctionne parfaitement.!

Du coup en PJ, tu aura le fichier, avec la macro et même le bouton pour la déclencher!

Le code est un peu sale, mais ça tourneras correctement, et ça devrait te donner ce que tu veux. Ceci dit, mes deux compères du dessus ont raison, tu devrait songer à envisager une autre structure pour ta base de donnée, avec celle ci, ça va rapidement devenir ingérable et extrèmement lourd!

Je te laisse comparer le poids de ton fichier avant l’exécution de la macro et après l’exécution.

Yann

bonjour

merci pour votre aide.

Je vais essayer de vous expliquez du mieux la chose de mon coté novice...

nous travaillons avec le logiciel SAGE pour la gestion et compta

les prix sont effectué en fonction d'une catégorie tarifaire sur chaque article.

hors cette année évolution du système informatique les données sont remontés mensuellement automatiquement et tout est transformé en BL.

hors avec ce procédé il faut que les articles soit attachés à chaque client en non plus en une catégorie tarifaire générale.

donc c est la ou l'informaticien devait nous refaire ceci en fichier texte.... mais il n'est plus jamais venu...

donc j'ai fait manuellement sur SAGE avec le premier client entrée tous les articles et prix, et j'ai fait un export de SAGE pour voir comment se présentait la chose en fichier texte puis sur Excel (d'où la forme de la base de donnée)

et c'est la que vous m'avez aidé... et je vais pouvoir essayer lundi matin de renvoyer le fichier texte dans l'autre sens.

encore merci bon week end à vous

cordialement

julien

Rechercher des sujets similaires à "repeter base donnee codes clients"