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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonjour Soan,

j'ai encore besoin de ton aide si tu à du temps pour moi,
@soan
j'ai deux bases de donnés un qui s'appelle COALA et l'autre DEXT

je souhaite comparer les deux bases, en comparant la colonne D de chaque base.
je souhaite vérifier que les données de DEXT sont bien dans COALA.

si elle est manquante je souhaite le faire apparaitre dans la feuille "resultat. "

Je te remercie grandement pour ton aide.
 

Pièces jointes

Bonjour Carlot, le fil,

la feuille "RESULTAT" est vide ; va sur la feuille "DEXT", et fais Ctrl e. 🙂

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "DEXT" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 4).End(3).Row: If n = 1 Then Exit Sub
  Dim T, r As Range, ref$, i&, j&: T = [D1].Resize(n): j = 1
  Application.ScreenUpdating = 0
  With Worksheets("RESULTAT")
    .Columns(1).ClearContents 'pour effacer d'éventuels anciens résultats
    For i = 2 To n
      ref = T(i, 1)
      If ref <> T(i - 1, 1) Then
        Set r = Worksheets("COALA").Columns(4).Find(ref, , -4163, 1, 1)
        If r Is Nothing Then
          .Cells(j, 1) = ref: j = j + 1
        End If
      End If
    Next i
    .Select
  End With
End Sub

soan
 

Pièces jointes

Bonjour Carlot, le fil,

la feuille "RESULTAT" est vide ; va sur la feuille "DEXT", et fais Ctrl e. 🙂

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "DEXT" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 4).End(3).Row: If n = 1 Then Exit Sub
  Dim T, r As Range, ref$, i&, j&: T = [D1].Resize(n): j = 1
  Application.ScreenUpdating = 0
  With Worksheets("RESULTAT")
    .Columns(1).ClearContents 'pour effacer d'éventuels anciens résultats
    For i = 2 To n
      ref = T(i, 1)
      If ref <> T(i - 1, 1) Then
        Set r = Worksheets("COALA").Columns(4).Find(ref, , -4163, 1, 1)
        If r Is Nothing Then
          .Cells(j, 1) = ref: j = j + 1
        End If
      End If
    Next i
    .Select
  End With
End Sub

soan

eh bonjour @soan,

Merci c'est exactement ça!!

j'ai une petite demande en plus..
Pour le résultat j'aimerais que toute les ligne manquante soit disponible dans Résultat, exemple pour la 9460596592

j'aimerais avoir:

20/01/2021​
ACFV.J
9460596592​
V.J Distribution Sarl 2210120162850 cb
0​
64​
EReceipt Bank
20/01/2021​
AC
9460596592​
V.J Distribution Sarl 2210120162850 cb
64​
0​
EReceipt Bank


merci soan
 
Bonjour Carlot, le fil,

j'ai pas pu t'répondre plus tôt. 😢 (manque de temps)

tu as écrit : « Merci c'est exactement ça!! »

merci pour ton retour ! 😊



tu as écrit : « Pour le résultat j'aimerais que toutes les lignes manquantes soient disponibles dans Résultat » ; j'ai compris que pour une ligne de résultat, tu veux qu'elle apparaisse entièrement, et pas seulement la référence piece de la colonne D, donc en fait les infos de toutes les colonnes de cette ligne ; rebelote :​

la feuille "RESULTAT" est vide ; va sur la feuille "DEXT", et fais Ctrl e. 🙂

le nouveau code VBA est celui-ci :

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "DEXT" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 4).End(3).Row: If n = 1 Then Exit Sub
  Dim T, r As Range, ref$, i&, j&: T = [A1].Resize(n, 10): j = 1
  Application.ScreenUpdating = 0
  With Worksheets("RESULTAT")
    .Columns("A:J").ClearContents 'pour effacer d'éventuels anciens résultats
    For i = 2 To n
      ref = T(i, 4)
      If ref <> T(i - 1, 4) Then
        Set r = Worksheets("COALA").Columns(4).Find(ref, , -4163, 1, 1)
        If r Is Nothing Then
          With .Cells(j, 1)
            .Value = T(i, 1)         'date
            .Offset(, 1) = T(i, 2)   'journal
            .Offset(, 2) = T(i, 3)   'compte
            .Offset(, 3) = ref       'piece
            .Offset(, 4) = T(i, 5)   'libelle
            .Offset(, 5) = T(i, 6)   'debit
            .Offset(, 6) = T(i, 7)   'credit
            .Offset(, 7) = T(i, 8)   'monnaie
            .Offset(, 8) = T(i, 9)   'originePiece
            .Offset(, 9) = T(i, 10)  'refDocument
          End With
          j = j + 1
        End If
      End If
    Next i
    .Select
  End With
End Sub

soan
 

Pièces jointes

bonjour @soan ,

merci pour ton fichier le résultat est correct, il me manque une petite chose encore pour la perfection..

je souhaite voir l'écriture comptable entièrement, comme cela:


20/01/2021ACFV.J9460596592V.J Distribution Sarl 2210120162850 cb064EReceipt Bankhttps://rbnk.me/i/7li892KBKgk
20/01/2021AC9460596592V.J Distribution Sarl 2210120162850 cb640EReceipt Bankhttps://rbnk.me/i/7li892KBKgk

Une écriture complète à le même numéro pièce "exemple 9460596592"

je souhaite donc voir toutes les lignes qui ne sont pas dans l'onglet Coala mais présent dans DEXT.

je sais que je suis chiant..
vraiment navré
merci
 
Bonjour Carlot,

ah, ben voilà c'que c'est d'pas montrer dès l'début un exemple du résultat attendu ! 😜 au départ, j'avais pensé qu'c'était juste le n° pièce, car tu parlais d'comparer seulement les 2 colonnes D (entre la feuille "DEXT" et la feuille "COALA") ; puis j'ai pensé qu'tu voulais seulement la ligne entière ; et finalement, c'est toute l'écriture comptable ! soit, ton vœu est maint'nant exaucé et réalisé (enfin, j'crois ! 😁 😜) ; c'est fait dans l'fichier joint ; même manip que précédemment. 🙂​

soan
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
489
Retour