XL 2019 je voudrais transféré les donnée de la feuille 1 via un model sur tous les entreprise via des critère pour les colonne.

Bonsoir a tous ,

je suis désoler des faute :(

j'aurai besoin de votre aide.

j'ai pris une macro déjà excitant dans se forum et je voudrais la modifier mais je n'arrive pas.

j'ai expliqué se que je voulais faire dans le fichier .

On résumer je voudrais transféré les donnée de la feuille 1 via un model sur tous les entreprise via des colonne via des critère.

je suis dyslexique désoler

Merci de votre aide
 

Pièces jointes

  • transfére.xlsm
    122.9 KB · Affichages: 10

cp4

XLDnaute Barbatruc
Bonsoir a tous ,

je suis désoler des faute :(

j'aurai besoin de votre aide.

j'ai pris une macro déjà excitant dans se forum et je voudrais la modifier mais je n'arrive pas.

j'ai expliqué se que je voulais faire dans le fichier .

On résumer je voudrais transféré les donnée de la feuille 1 via un model sur tous les entreprise via des colonne via des critère.

je suis dyslexique désoler

Merci de votre aide
Bonjour @desquiens.gabriel@hotmail :), Le Forum;)

@desquiens.gabriel@hotmail : Je te conseille de changer ton pseudo. Là, c'est carrément une adresse mail.

Pour ton problème, merci de nous aider à t'aider. J'ai consulté ton fichier, sur la feuille 'GL', il y a 2 colonnes (B et C) qui ont le même intitulé 'Type de pièce'. Ce qui peut prêter à confusion. Je te suggère pour la colonne B de mettre l'intitulé 'N° Type de pièce'.

Sur la dernière ligne, il n'y a pas de nom de société. Pour avoir une base de données pérenne, il ne faut pas qu'il y ait en première ligne et première colonne de cellules vides.

Pour essayer de t'aider, je vais mettre un nom fictif à la société manquante (ex:FR63).

A+
 
Bonjour @desquiens.gabriel@hotmail :), Le Forum;)

@desquiens.gabriel@hotmail : Je te conseille de changer ton pseudo. Là, c'est carrément une adresse mail.

Pour ton problème, merci de nous aider à t'aider. J'ai consulté ton fichier, sur la feuille 'GL', il y a 2 colonnes (B et C) qui ont le même intitulé 'Type de pièce'. Ce qui peut prêter à confusion. Je te suggère pour la colonne B de mettre l'intitulé 'N° Type de pièce'.

Sur la dernière ligne, il n'y a pas de nom de société. Pour avoir une base de données pérenne, il ne faut pas qu'il y ait en première ligne et première colonne de cellules vides.

Pour essayer de t'aider, je vais mettre un nom fictif à la société manquante (ex:FR63).

A+
bonsoir

merci pour ta réponse :)

je peux pas changer mon pseudo je dois attendre :(

je voudrais faire un choix par colonne les non je changerai.

puis la casse ligne vide je voudrais quelle soit avec la ligne du dessus a la creation de la page de l'entreprise.

je c'est pas si c'est clair
 

cp4

XLDnaute Barbatruc
Bonjour,
D'après ce que j'ai compris, est-ce bien ce que tu veux obtenir?
traitement.gif

Bonne journée.
ps: clique sur l'image pour l'agrandir
 
Bonjour,
D'après ce que j'ai compris, est-ce bien ce que tu veux obtenir?
Regarde la pièce jointe 1150266
Bonne journée.
ps: clique sur l'image pour l'agrandir
bonjour

merci pour ta réponse .

c'est ca mais qui se basse sur un model , qui me crée les page FR12... via un model qui serrai repliquer partout .

ha cela pas avoir les colonne IJK quand ca me copie les donnée .

j'en demande beaucoup désoler
 

cp4

XLDnaute Barbatruc
bonjour

merci pour ta réponse .

c'est ca mais qui se basse sur un model , qui me crée les page FR12... via un model qui serrai repliquer partout .

ha cela pas avoir les colonne IJK quand ca me copie les donnée .

j'en demande beaucoup désoler
Je n'ai donc pas compris. Stp, peux-tu joindre un fichier avec ce que tu veux obtenir au final.
Je me suis basé sur ton modèle de la feuille Model où il n'y a pas de données en colonnes I, J et K.
Peut-être comme ceci, juste cellule de départ en B5 au lieu de A1.
traitement.gif


A+
 

cp4

XLDnaute Barbatruc
j'ai fait un exemple ca serra mieux .

j'ai fait un f14 comme je voudrais qui soit et le model pour tout les entreprise .

merci de prendre du temps pour m'aider
Si tu changes à chaque fois le modèle ça ne sera pas possible.
Déjà, les entêtes de colonnes commencent à la cellule B6 sur la feuille Modèle et sur la feuille F1 à la cellule B10. Ce n'est donc pas exactement à l'identique.
Occupé, je reviendrai ce soir.
A+
 
Si tu changes à chaque fois le modèle ça ne sera pas possible.
Déjà, les entêtes de colonnes commencent à la cellule B6 sur la feuille Modèle et sur la feuille F1 à la cellule B10. Ce n'est donc pas exactement à l'identique.
Occupé, je reviendrai ce soir.
A+
merci de m'avoir repondu

je reste sur se model que je veux avoir pour chaque société
 

cp4

XLDnaute Barbatruc
Bonsoir,
Code à copier dans un module et à associer au bouton Hop!
VB:
Option Explicit

Sub ventilation_Suivant_Modele()
   Dim i As Long, n As Integer, lr As Integer
   Dim TbE(), TbS(), d As Object, Société As Variant, Modele As Range
   Set Modele = Sheets("model").Range("A1:L6")

   Set d = CreateObject("scripting.dictionary")
   With Worksheets("GL")      'avec la feuille "GL"
      TbE = .Range("A1").CurrentRegion.Value   ' on met toutes les données dans une variable tableau (plus rapide)
      'Boucle pour récupérer Sociétés sans doublons dans le dictionnaire 'd'
      For i = 2 To UBound(TbE)
         d(TbE(i, 1)) = ""
      Next i

      Application.ScreenUpdating = False: Application.DisplayAlerts = False   'on fige l'écran et desactive les alertes

      For Each Société In d.keys   'boucle sur chaque société
         n = 0 'remise à zero du compteur n
         For i = 2 To UBound(TbE)   'boucle pour récupérer données par société
            If TbE(i, 1) = Société Then
               n = n + 1
               ReDim Preserve TbS(1 To 11, 1 To n)
               TbS(1, n) = TbE(i, 1)
               TbS(2, n) = TbE(i, 2)
               TbS(3, n) = TbE(i, 3)
               TbS(4, n) = TbE(i, 4)
               TbS(5, n) = TbE(i, 5)
               TbS(6, n) = TbE(i, 6)
               TbS(7, n) = TbE(i, 7)
               TbS(8, n) = TbE(i, 8)
               TbS(9, n) = TbE(i, 10)
               TbS(10, n) = TbE(i, 11)
               TbS(11, n) = TbE(i, 12)
            End If
         Next i

         On Error Resume Next
         Sheets(Société).Delete   'suppresion de la feuille
         On Error GoTo 0

         Sheets.Add(after:=Sheets(Sheets.Count)).Name = Société   'ajout d'une feuille+nommage

         With Sheets(Société)
            Modele.Copy .Range("A1") 'copie de l'entete du modele
            lr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1 'derniere ligne de la feuille
            .Range("B" & lr).Resize(UBound(TbS, 2), UBound(TbS)) = Application.Transpose(TbS)  'restitution données sur chaque feuille
            .Range("B" & lr).Resize(UBound(TbS, 2), UBound(TbS)).Borders.LineStyle = 1   'cadrillage
'            .Range("B" & lr).Resize(, UBound(TbS)).EntireColumn.AutoFit   ' ajustement largeur colonnes
         End With
      Next Société
      .Activate
   End With
   MsgBox "Traitement terminé!", vbOKOnly + vbInformation, "SUCCES"
   Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub

A+

edit: ton fichier en retour
 

Pièces jointes

  • transfére V2.xlsm
    170.1 KB · Affichages: 3
Dernière édition:
Bonsoir,
Code à copier dans un module et à associer au bouton Hop!
VB:
Option Explicit

Sub ventilation_Suivant_Modele()
   Dim i As Long, n As Integer, lr As Integer
   Dim TbE(), TbS(), d As Object, Société As Variant, Modele As Range
   Set Modele = Sheets("model").Range("A1:L6")

   Set d = CreateObject("scripting.dictionary")
   With Worksheets("GL")      'avec la feuille "GL"
      TbE = .Range("A1").CurrentRegion.Value   ' on met toutes les données dans une variable tableau (plus rapide)
      'Boucle pour récupérer Sociétés sans doublons dans le dictionnaire 'd'
      For i = 2 To UBound(TbE)
         d(TbE(i, 1)) = ""
      Next i

      Application.ScreenUpdating = False: Application.DisplayAlerts = False   'on fige l'écran et desactive les alertes

      For Each Société In d.keys   'boucle sur chaque société
         n = 0 'remise à zero du compteur n
         For i = 2 To UBound(TbE)   'boucle pour récupérer données par société
            If TbE(i, 1) = Société Then
               n = n + 1
               ReDim Preserve TbS(1 To 11, 1 To n)
               TbS(1, n) = TbE(i, 1)
               TbS(2, n) = TbE(i, 2)
               TbS(3, n) = TbE(i, 3)
               TbS(4, n) = TbE(i, 4)
               TbS(5, n) = TbE(i, 5)
               TbS(6, n) = TbE(i, 6)
               TbS(7, n) = TbE(i, 7)
               TbS(8, n) = TbE(i, 8)
               TbS(9, n) = TbE(i, 10)
               TbS(10, n) = TbE(i, 11)
               TbS(11, n) = TbE(i, 12)
            End If
         Next i

         On Error Resume Next
         Sheets(Société).Delete   'suppresion de la feuille
         On Error GoTo 0

         Sheets.Add(after:=Sheets(Sheets.Count)).Name = Société   'ajout d'une feuille+nommage

         With Sheets(Société)
            Modele.Copy .Range("A1") 'copie de l'entete du modele
            lr = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1 'derniere ligne de la feuille
            .Range("B" & lr).Resize(UBound(TbS, 2), UBound(TbS)) = Application.Transpose(TbS)  'restitution données sur chaque feuille
            .Range("B" & lr).Resize(UBound(TbS, 2), UBound(TbS)).Borders.LineStyle = 1   'cadrillage
'            .Range("B" & lr).Resize(, UBound(TbS)).EntireColumn.AutoFit   ' ajustement largeur colonnes
         End With
      Next Société
      .Activate
   End With
   MsgBox "Traitement terminé!", vbOKOnly + vbInformation, "SUCCES"
   Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub

A+

edit: ton fichier en retour
merci beaucoup

tu es le best

je peux profiter de ta gentillesse ?

je si c'est possible je voudrais que ca me prend les société via une liste :
je m'explique via la photo je voudrais que dans la société il y a tout :
exemple FR13 il prend les ligne 17 a 21 et après pour FR14 23 a 27
je sais pas si c'est tres clair ?

deuxième chose après désoler : je voudrais mettre un mon devant la feuille pour chaque société :
exemple " FR14 " passe a "BLABLA FR14"
désoler de profiter de toi

merci énormément :)
1663870321201.png
 

cp4

XLDnaute Barbatruc
merci beaucoup

tu es le best

je peux profiter de ta gentillesse ?

je si c'est possible je voudrais que ca me prend les société via une liste :
je m'explique via la photo je voudrais que dans la société il y a tout :
exemple FR13 il prend les ligne 17 a 21 et après pour FR14 23 a 27
je sais pas si c'est tres clair ?

deuxième chose après désoler : je voudrais mettre un mon devant la feuille pour chaque société :
exemple " FR14 " passe a "BLABLA FR14"
désoler de profiter de toi

merci énormément :)
Regarde la pièce jointe 1150356
Non désolé! Au vu de ton image ce n'est pas possible. Je t'avais dit que si on voulait une feuille de calcul comme base de données, il faut que la 1ère ligne (entête de colonnes) et 1ère colonne, il n'y ait pas de cellules vides. Là, tu vas droit au mur.

Pour le nouveau de feuille " blabla fr13" par exemple, il faut modifier cette ligne de code
VB:
Sheets.Add(after:=Sheets(Sheets.Count)).Name = Société   'ajout d'une feuille+nommage
'par'
Sheets.Add(after:=Sheets(Sheets.Count)).Name = "BLABLA "  Société   'ajout d'une feuille+nommage

Bonne continuation.

edit: données manquantes voir image
transfert.jpg
 
Non désolé! Au vu de ton image ce n'est pas possible. Je t'avais dit que si on voulait une feuille de calcul comme base de données, il faut que la 1ère ligne (entête de colonnes) et 1ère colonne, il n'y ait pas de cellules vides. Là, tu vas droit au mur.

Pour le nouveau de feuille " blabla fr13" par exemple, il faut modifier cette ligne de code
VB:
Sheets.Add(after:=Sheets(Sheets.Count)).Name = Société   'ajout d'une feuille+nommage
'par'
Sheets.Add(after:=Sheets(Sheets.Count)).Name = "BLABLA "  Société   'ajout d'une feuille+nommage

Bonne continuation.

edit: données manquantes voir image
Regarde la pièce jointe 1150357
merci beaucoup :)
merci de m'avoir répondu a ma premier question

si je motif le modelé ca le modifier partout ou pas ?
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87