Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA : comptabilité extourner écriture

  • Initiateur de la discussion Initiateur de la discussion Yücel
  • Date de début Date de début

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 !

Yücel

XLDnaute Junior
Bonjour,

J'aurais besoin de votre précieuse aide svp.

Vous trouverez ci-joint mon fichier excel avec ma demande. J'espère avoir été claire sinon j'essayerai de donner plus d'explication.

Je vous en remercie par avance ! 🙂
 

Pièces jointes

Bonjour,

Essayez ceci
VB:
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    DerLig = Sheets("Journal").ListObjects("Tableau1").DataBodyRange.Rows.Count
    piece = Range("F7").Value
    For i = 10 To DerLig
        If Cells(i, "C") = piece Then
            Range(Cells(i, "B"), Cells(i, "G")).Copy Cells(DerLig + 10, "B")
            Cells(DerLig + 10, "C") = piece
            Cells(DerLig + 10, "J") = "Ext. " & Cells(i, "J")
            Cells(DerLig + 10, "K") = Cells(i, "L")
            Cells(DerLig + 10, "L") = Cells(i, "K")
            Cells(DerLig + 10, "Q") = Cells(i, "Q")
            DerLig = Sheets("Journal").ListObjects("Tableau1").DataBodyRange.Rows.Count
        End If
    Next i
End Sub

Cdlt
 
Bonjour Yucel, Rouge😉

Avec une méthode tablo mais moins structuré que ce qu'à indiqué rouge sur un tableau structuré (que j'utilise très/trop peu).

Je m'étonne sur de vieux souvenirs :
- que la colonne "B" ne soit pas classé en "OD" pour des extournes
- que le numéro de pièce reste inchangée et non incrémentée ou avec un libellé "Ext. 5"
Mais c'est un peux vieux... 😛

@+

VB:
Private Sub CommandButton1_Click()
Dim ta(), tb(), derligne&, i&, j&, m&
'-- paramétrage
derligne = Cells(Rows.Count, 3).End(3).Row
ta = Range("B10:Q" & derligne).Value
ReDim tb(1 To derligne - 9, 1 To 16)
m = 0
'--boucle tableau
For i = 1 To derligne - 9
If ta(i, 2) = Cells(7, "F") Then
    m = m + 1
    '-- pour les cellules sans modification
    A = Array(1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16)
    For j = LBound(A) To UBound(A)
    tb(m, A(j)) = ta(i, A(j))
    Next j
    '-- pour les autres cellules
    tb(m, 9) = "Ext. " & ta(i, 9)
    tb(m, 10) = IIf(ta(i, 11) = "", "", ta(i, 11))
    tb(m, 11) = IIf(ta(i, 10) = "", "", ta(i, 10))
End If
Next i
'-- restitution
Range("B" & (derligne + 1)).Resize(m, 16) = tb
End Sub
 
merci beaucoup Rose !!!!
Merci pour votre rapidité et votre qualité ! 😀

J'avais oublié de préciser encore deux petites choses (désolé j'aurais du le préciser avant).


Peut-on à la première ligne recopié (et uniquement à la première ligne recopié) mettre :

1/ Colonne C : numéro de pièce précédente +1 (pour l'incrémenté)
2/ Colonne D : mettre une croix (ce qui m'indiquera qu'il faut que j'entre une date manuellement).

Vous trouverez en PJ un exemple de ma demande.

un grand merci à vous.
 

Pièces jointes

Zebanx,

Le fichier joint n'est pas l'original par confidentialité.

Il ne faut pas toucher a la colonne B (journal) car l'écriture de base sera en OD.

Il aurait juste fallu m'ajouter à la première ligne recopié (et uniquement à la première ligne recopié) :

1/ Colonne C : numéro de pièce précédente +1 (pour l'incrémenté)
2/ Colonne D : mettre une croix (ce qui m'indiquera qu'il faut que j'entre une date manuellement).

Merci à vous deux 😀 !
 
Zebanx,

C'est bien ce que je voulais mais ça me bloque à un point, je pense que j'en demande trop à Excel lol .... 😵

En tout cas je clôture la demande. pour ma part c'est résolu 😀😀

Un super grand merci à vous deux !!!!
 
OK.

Je n'ai pas compris l'histoire de date en colonne "D". Ce n'est pas un "X" qu'il faut mettre sur la première ligne ?
Que souhaitez-vous afficher dans la première ligne de la colonne D restituée svp ?
 
C'était bien comme vous avez fait dans le dernier fichier, mais au lieu de dire afficher vide dans les autres lignes, il faut rien indiquer pour les autres lignes copié, est-ce possible ??

VB:
tb(m, 3) = IIf(m = 1, "X", " ")

Merci.
 
Bonsoir Soan et bonne année et meilleurs vœux !!

Un grand merci à vous aussi 😀 en enlevant l'espace du coup tout fonctionne exactement comme je veux c'est parfait !

Merci à vous trois 😀 ainsi je clôture avec joie la discussion

Bonne continuation
 
- 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
5
Affichages
132
Réponses
10
Affichages
311
Réponses
4
Affichages
152
Réponses
4
Affichages
282
Réponses
1
Affichages
158
  • Question Question
XL 2019 fonction
Réponses
2
Affichages
133
Réponses
2
Affichages
146
Réponses
7
Affichages
255
Réponses
40
Affichages
1 K
Réponses
4
Affichages
179
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…