XL 2016 VBA : comptabilité extourner écriture

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

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

Rouge

XLDnaute Impliqué
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
 

zebanx

XLDnaute Accro
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... :p

@+

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
 

Yücel

XLDnaute Junior
merci beaucoup Rose !!!!
Merci pour votre rapidité et votre qualité ! :D

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

Yücel

XLDnaute Junior
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 :D !
 

Yücel

XLDnaute Junior
Bonsoir Soan et bonne année et meilleurs vœux !!

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

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

Bonne continuation
 

Discussions similaires

Réponses
17
Affichages
701
Réponses
5
Affichages
327
Réponses
3
Affichages
295
  • Question Question
XL 2013 VBA Excel
Réponses
2
Affichages
568
Réponses
11
Affichages
780

Statistiques des forums

Discussions
315 285
Messages
2 118 029
Membres
113 416
dernier inscrit
rr69