Microsoft 365 formule Excel pour dupliquer une ligne selon une valeur dans une cellule

Carlot

XLDnaute Nouveau
Bonjour à tous,

Je souhaite voir avec vous si il est possible de dupliquer une ligne vers le haut selon un une cellule.
en effet Sage propose l'intégration analytique mais celui-ci demande que la ligne soit présent 2 fois exemple :
04/01/2021F2101161112000AGOEG239670
04/01/2021F2101161112000AGOEASIEGE236970
04/01/2021F2101161112000AGOEG00
04/01/2021F2101144566000AGOEG00
04/01/2021F2101144566000AGOEG2037,20

ici SIEGE est dupliquer pour le même montant.
le soucis c'est que mon fichier d'origine n'est pas dupliqué, c'est donc une ligne à créer à chaque fois qu'il y a une analytique...

merci de votre aide
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Carlot, sylvanu,

Bienvenue sur le site XLD ! :)

Je te propose le fichier joint ci-dessous ; fais Ctrl e ➯ travail effectué.

VB:
Sub Essai()
  Dim lig&: Application.ScreenUpdating = 0
  lig = Cells(Rows.Count, 1).End(3).Row
  Do
    With Cells(lig, 1)
      If .Offset(, 5) = "A" Then
        Rows(lig).Insert: .Resize(, 10).Copy .Offset(-1)
        .Offset(-1, 5) = "G": .Offset(-1, 7) = Empty
      End If
    End With
    lig = lig - 1
  Loop Until lig = 0
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Exo Carlot.xlsm
    14.9 KB · Affichages: 17
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonsoir Carlot, sylvanu,

toujours pas de retour ? :confused: lis d'abord mon post #3 précédent. ;)

tu peux aussi faire ce petit test : AVANT de lancer la macro, met un "A" en F2:F4 ; puis fais Ctrl etoutes les lignes sont copiées 1× au-dessus de la ligne précédente ➯ de 4 lignes, ça passe à 8 lignes ; note bien que pour une ligne copiée : a) je mets "G" au lieu de "A" en colonne F (donc compta Générale au lieu de compta Analytique ➯ y'a bien les 2 lignes requises pour l'intégration analytique faite par le logiciel SAGE) ; b) j'efface ce qui est éventuellement en colonne H.​

soan
 

Carlot

XLDnaute Nouveau
Bonjour Carlot, sylvanu,

Bienvenue sur le site XLD ! :)

Je te propose le fichier joint ci-dessous ; fais Ctrl e ➯ travail effectué.

VB:
Sub Essai()
  Dim lig&: Application.ScreenUpdating = 0
  lig = Cells(Rows.Count, 1).End(3).Row
  Do
    With Cells(lig, 1)
      If .Offset(, 5) = "A" Then
        Rows(lig).Insert: .Resize(, 10).Copy .Offset(-1)
        .Offset(-1, 5) = "G": .Offset(-1, 7) = Empty
      End If
    End With
    lig = lig - 1
  Loop Until lig = 0
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
Bonjour Carlot, sylvanu,

Bienvenue sur le site XLD ! :)

Je te propose le fichier joint ci-dessous ; fais Ctrl e ➯ travail effectué.

VB:
Sub Essai()
  Dim lig&: Application.ScreenUpdating = 0
  lig = Cells(Rows.Count, 1).End(3).Row
  Do
    With Cells(lig, 1)
      If .Offset(, 5) = "A" Then
        Rows(lig).Insert: .Resize(, 10).Copy .Offset(-1)
        .Offset(-1, 5) = "G": .Offset(-1, 7) = Empty
      End If
    End With
    lig = lig - 1
  Loop Until lig = 0
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
 

Carlot

XLDnaute Nouveau
Bonjour Soan,

Pour info chez nous a l'ile de la Reunion SOAN est un super chanteur! il a fait VOICE KID! et a gagné!!


Soan, je suis désolé de te déranger j'ai un soucis avec mon fichier Excel, il est super lent en exécution sa peut allez jusqu'à 15 min pour traité mon fichier

help me please!! :(
 

Pièces jointes

  • IMPORT ACHATS ANA PAR SAGE S.zip
    997.9 KB · Affichages: 6

soan

XLDnaute Barbatruc
Inactif
Bonjour Didier,

sympa la vidéo, merci ! :) il a bien mérité d'avoir gagné, le petit Soan !🥇en plus de bien chanter, il joue bien du tambour ! 👍

ton fichier en retour ; sur tes 2 feuilles "VOTRE IMPORT" et "sage" tu avais plein d'lignes vides inutiles et une colonne vide inutile ; je les ai toutes supprimées ➯ la taille du fichier est passée de 1 673 Ko (non zippé) à ... 102 Ko (non zippé) ! tu avais aussi plein d'valeurs d'erreur #REF! sur ta feuille de calcul ! et dans la liste de tes noms définis, tu as plein de #REF! ; tu les collectionne ? 😜 🤪 😁

fais Ctrl e, et essaye de patienter moins d'2 secondes ! 😊 ça passe de 67 lignes à 85 lignes ➯ 18 lignes de plus (y'avait donc 18 lignes avec "A") ; pour plus de sûreté, vérifie quand même bien tous les résultats !

attention : j'ai adapté la macro d'mon fichier précédent à ton nouveau fichier ! et cette macro ne s'exécutera que sur la feuille "VOTRE IMPORT".​

VB:
Sub Essai()
  If ActiveSheet.Name <> "VOTRE IMPORT" Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
  lig = Cells(Rows.Count, 1).End(3).Row
  Do
    With Cells(lig, 1)
      If .Offset(, 6) = "A" Then
        Rows(lig).Insert: .Resize(, 19).Copy .Offset(-1)
        .Offset(-1, 6) = "G": .Offset(-1, 8) = Empty
      End If
    End With
    lig = lig - 1
  Loop Until lig = 2
End Sub

soan
 

Pièces jointes

  • IMPORT ACHATS ANA PAR SAGE S.xlsm
    100 KB · Affichages: 6

Carlot

XLDnaute Nouveau
Bonjour Didier,

sympa la vidéo, merci ! :) il a bien mérité d'avoir gagné, le petit Soan !🥇en plus de bien chanter, il joue bien du tambour ! 👍

ton fichier en retour ; sur tes 2 feuilles "VOTRE IMPORT" et "sage" tu avais plein d'lignes vides inutiles et une colonne vide inutile ; je les ai toutes supprimées ➯ la taille du fichier est passée de 1 673 Ko (non zippé) à ... 102 Ko (non zippé) ! tu avais aussi plein d'valeurs d'erreur #REF! sur ta feuille de calcul ! et dans la liste de tes noms définis, tu as plein de #REF! ; tu les collectionne ? 😜 🤪 😁

fais Ctrl e, et essaye de patienter moins d'2 secondes ! 😊 ça passe de 67 lignes à 85 lignes ➯ 18 lignes de plus (y'avait donc 18 lignes avec "A") ; pour plus de sûreté, vérifie quand même bien tous les résultats !

attention : j'ai adapté la macro d'mon fichier précédent à ton nouveau fichier ! et cette macro ne s'exécutera que sur la feuille "VOTRE IMPORT".​

VB:
Sub Essai()
  If ActiveSheet.Name <> "VOTRE IMPORT" Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
  lig = Cells(Rows.Count, 1).End(3).Row
  Do
    With Cells(lig, 1)
      If .Offset(, 6) = "A" Then
        Rows(lig).Insert: .Resize(, 19).Copy .Offset(-1)
        .Offset(-1, 6) = "G": .Offset(-1, 8) = Empty
      End If
    End With
    lig = lig - 1
  Loop Until lig = 2
End Sub

soan


DE RIEN pour la vidéo!

merci mais j'ai oublié de te donnée mon fichier de donnée, le voici ci dessous, du coup cela ne fonctionne pas sur votre import car votre import doit reprendre les infos de sage et les mettre dans la bonne case.

le fichier fonctionne bien mais juste qu'elle est vraiment pas rapide si ta l'occasion de la tester avec mon fichier teste ci joint

en te remerciant pour ton aide.

faudra que tu viennes sur l'ile pour boire un ti rhum
 

Pièces jointes

  • FICHIER TEST.zip
    1 006 bytes · Affichages: 2

soan

XLDnaute Barbatruc
Inactif
@Carlot

merci pour ton invitation de venir sur ton île, mais en fait, j'voyage pas beaucoup, surtout avec la pandémie actuelle du coronavirus ! et pour le rhum, en fait je ne bois pas d'alcool, je préfère les jus d'fruit, les sirops, et l'antésite (c'est une boisson à base de réglisse, aromatisée par exemple à la menthe ou au citron). 😜

j'ai vu ton fichier de données CSV, mais j'sais pas comment faut l'utiliser avec ton fichier Excel ; peut-être que si tu m'indiques la manip ? et pour le .xlsm c'est seulement à partir de la feuille "VOTRE IMPORT", n'est-ce pas ? les 2 autres feuilles "client" et "sage" sont pas concernées par ta demande ; note que j'ai pas utilisé tes boutons de commande, j'ai juste utilisé ma macro via Ctrl e.​

soan
 

Carlot

XLDnaute Nouveau
@Carlot

merci pour ton invitation de venir sur ton île, mais en fait, j'voyage pas beaucoup, surtout avec la pandémie actuelle du coronavirus ! et pour le rhum, en fait je ne bois pas d'alcool, je préfère les jus d'fruit, les sirops, et l'antésite (c'est une boisson à base de réglisse, aromatisée par exemple à la menthe ou au citron). 😜

j'ai vu ton fichier de données CSV, mais j'sais pas comment faut l'utiliser avec ton fichier Excel ; peut-être que si tu m'indiques la manip ? et pour le .xlsm c'est seulement à partir de la feuille "VOTRE IMPORT", n'est-ce pas ? les 2 autres feuilles "client" et "sage" sont pas concernées par ta demande ; note que j'ai pas utilisé tes boutons de commande, j'ai juste utilisé ma macro via Ctrl e.​

soan
Bon ben va pour un jus fruit kan le covid sera fini!

ah! ok!

bon pour utiliser il faut cliquer sur fichier RECEIPTBANK et ensuite tu cherches le fichier test, puis tu laisse faire et puis quand c'est fini tu cliques sur import!
tout fonctionne juste que c'est hyper long!
peux être raccourcir quelque chose dans le processus.....
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 319
Membres
102 862
dernier inscrit
Emma35400