XL 2019 Besoin d'aide pour une Macro pouvant doubler des lignes et remplir des colonnes

Yoshi0302

XLDnaute Nouveau
Bonjour à tous
Merci pour votre aide que vous apportez chaque jour .

Je me permets d'ouvrir une discussion afin de trouver de l'aide auprès de vous.
J'ai un fichier excel reprenant certaines informations et j'ai besoin d'une macro ou autre chose me permettant de doubler les lignes et de remplir des champs

Exemple :
Date de l'incident Type d'incident Compte Contrepartie Compte Débit Credit
21/07/2022 Prélèvement émis 1 A1 41100000 12 709,15
21/07/2022 Prélèvement émis 1 A1 51210238 0,00 12709,15
21/07/2022 Prélèvement émis 2 A2 41100000 466,67
21/07/2022 Prélèvement émis 2 A2 51210238 0,00 466,67

Les lignes noires sont celles de mon fichier de base et j'aimerais qu'une macro puisse donc créer les lignes vertes en remplissant automatiquement la colonne compte = 51210238 et la colonne Crédit qui sera égale au montant du débit de la ligne doublée.
Sachant que la macro devra fonctionner sur des fichiers ne comportant pas le meme nombre de lignes à chaque fois.

Je vous joins le fichier en pièce jointe avec les 4 premières lignes qui représentent ce que je souhaite.

Pensez vous que cela puisse fonctionner ? Merci beaucoup pour votre aide
 

Pièces jointes

  • FICHIER TEST.xlsx
    34.1 KB · Affichages: 6
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Une solution sans VBA avec PowerQuery intégré à Excel

Pourrait être fait sur un fichier externe sans l'ouvrir, ce qui permet d'avoir une requête prêt à l'emploi pour tout classeur
 

Pièces jointes

  • Comptes_Débit_Crédit-PQ.xlsx
    85.5 KB · Affichages: 2

Yoshi0302

XLDnaute Nouveau
Bonjour Chris et merci beaucoup pour ton message.

Cependant je n'y connais rien en power query et pour comprendre peux tu me donner la démarche stp?
Imaginons que j'ai un nouveau fichier , que dois je lancer pour obtenir le resultat final ?
Merci beaucoup
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Yoshi, Chris,
Une approche en VBA avec :
VB:
Sub InsertionLignes()
    Application.ScreenUpdating = False
    Dim DL%, L%
    DL = Range("A65500").End(xlUp).Row
    For L = DL To 2 Step -1
        If Cells(L, "E") = "41100000" And Cells(L + 1, "E") = "41100000" Or _
            Cells(L, "E") = "41100000" And Cells(L + 1, "E") = "" Then
            Rows(L).Copy
            Rows(L + 1).Insert Shift:=xlDown
            Cells(L + 1, "E") = "51210238"
        End If
    Next L
End Sub
 

Pièces jointes

  • fichier test.xlsm
    91.3 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour à tous
Cependant je n'y connais rien en power query et pour comprendre peux tu me donner la démarche stp?
Imaginons que j'ai un nouveau fichier , que dois je lancer pour obtenir le resultat final ?

Tu peux déjà regarder les étapes des 3 requêtes : Données, Obtenir des données, Lancer PowerQuery
A droite, pour chaque requête sélectionnée à gauche, tu as les étapes dont le détail est affiché dans la barre de formule et en cliquant sur le petit rouage de l'étape
Le tout a été fait en 11 étapes simples (onpasse pas les options des menus, sans besoin de coder.

Une autre version permettant de choisir un fichier par quelques lignes de VBA et d'obtenir le résultat (c'est le 1er onglet du classeur qui est traité)
 

Pièces jointes

  • Comptes_Débit_Crédit_FichierExterne_PQ.xlsm
    63.1 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
302 099
Messages
2 000 397
Membres
214 832
dernier inscrit
CoLoRzE