IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Saut de lignes entre les infos lors de la copie d'un userform vers une feuille [XL-2019]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 16
    Par défaut Saut de lignes entre les infos lors de la copie d'un userform vers une feuille
    Bonjour à tous!

    je suis sur la conception d'un gestionnaire qui doit gérer mes achats , mon stock et ma caisse

    l'idée est que lorsque je fais un achat , les infos d'articles (fournisseurs, catégories d'articles , la désignation, le Prix unitaire,....) sont transférées dans un panier: ici un listview

    au click sur le bouton enregistrer les différentes infos sont transférer dans les feuilles achat, mouvements de stocks et caisse.

    voila j'ai un soucis

    1. au click sur le bouton enregistrer, les infos dans les feuilles achat et en caisse sont passées correctement.
    cependant au niveau des mouvements de stocks, la macro saute une ligne entre les différents articles

    voic mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    Dim ws As Worksheet, wsR As Worksheet, wsG As Worksheet
    Dim L As Long, Cl As Long, i As Long, j As Long, Lr As Long, lrR As Long, LrG As Long
    Dim Tbl() As Variant
     
    Set ws = Sheets("Achat")
    Set wsR = Sheets("Caisse")
    Set wsG = Sheets("Mouvements Stocks")
     
     
    'copie listview vers feuille achat
    With Me.ListVAppro
        'mise en memoire de la listview
        L = .ListItems.Count
        Cl = .ColumnHeaders.Count
        ReDim Tbl(1 To L + 1, 1 To Cl)
        For i = 1 To L
            Tbl(i, 1) = .ListItems(i).Text
            For j = 1 To Cl - 1
                Tbl(i, j + 1) = .ListItems(i).ListSubItems(j).Text
            Next j
        Next i
     
        If .ListItems.Count < 1 Then
            MsgBox " Ajouter des produits a la facture!", vbCritical + vbOKOnly, ""
            Exit Sub
        Else
            If Me.TextLibelle = "" Then
            MsgBox " Veuillez Saisir un libelle", vbCritical, ""
            Me.TextLibelle.SetFocus
            Exit Sub
            End If
     
            If MsgBox("Voulez - vous enregistrer cette facture?", vbYesNo, "Demande de confirmation") = vbYes Then
     
                With ws
                    Lr = .Range("B" & Rows.Count).End(xlUp).Row 'derniere ligne ocuppe sur la ligne b
                    For i = 1 To L ' boucle sur les lignes du tableau
     
                        .Range("c" & Lr + i) = Tbl(i, 1) ' Articles
                        .Range("D" & Lr + i) = Tbl(i, 2) ' Qte
                        .Range("e" & Lr + i) = Tbl(i, 3) ' PU
                        .Range("f" & Lr + i) = Tbl(i, 4) ' Remise
                        .Range("g" & Lr + i) = Tbl(i, 5) ' Montant
                        .Range("b" & Lr + i) = CDate(Me.TextDate) ' Date
                        .Range("b" & Lr + i) = Format(CDate(.Range("b" & Lr + i)), "DD-MM-YYYY")
                        .Range("h" & Lr + i) = Me.ComboFrs ' fournisseurs
                        .Range("i" & Lr + i) = Me.TextCodeFact ' code facture
                        .Range("j" & Lr + i) = Me.TextNumFact ' Numero Facture
     
                    Next i
                End With
     
                  With wsG
     
                  For i = 1 To L
                  LrG = wsG.Range("b" & Rows.Count).End(xlUp).Row
     
                        'enregistrement des données de stock
                        .Range("A" & LrG + i) = Me.TextDate   'date
                        .Range("b" & LrG + i) = "Entree"   'operation
                        .Range("c" & LrG + i) = Me.ComboFrs   'Tiers
                        .Range("d" & LrG + i) = Me.TextCodeFact   'N° piece
                        .Range("e" & LrG + i) = Me.TextNumFact  'N° facture
                        .Range("g" & LrG + i) = Me.ComboArticles   ' Categorie articles
                        .Range("h" & LrG + i) = Tbl(i, 1)   'designation
                        .Range("i" & LrG + i) = Me.TextLibelle   ' libelle
                        .Range("j" & LrG + i) = Tbl(i, 2)   'qte
                        .Range("k" & LrG + i) = Tbl(i, 3)   ' PU
                        .Range("l" & LrG + i) = Tbl(i, 5)  ' Montant
                Next i
                End With
     
        ' enregistrement des infos de reglement en caisse
     
            If Me.TextMontantPay = "" Then Exit Sub
     
            lrR = wsR.Range("B" & Rows.Count).End(xlUp).Row + 1
     
            wsR.Range("B" & lrR) = Me.TextDate ' Date
            wsR.Range("C" & lrR) = "Decaissement" ' operations
            wsR.Range("d" & lrR) = "Achat Boissons" 'Poste budgetaire
            wsR.Range("e" & lrR) = Me.ComboFrs ' Tiers
            wsR.Range("f" & lrR) = Me.TextCodeFact ' numero facture
            wsR.Range("g" & lrR) = Me.TextLibelle ' libelle
            wsR.Range("i" & lrR) = CLng(Me.TextMontantPay) 'Montant paye
            wsR.Range("i" & lrR) = CLng(wsR.Range("i" & lrR))
            End If
    End If
     
    Unload Me
    NumeroFacture
    FrmAppro.Show
     
    Set ws = Nothing
    Set wsR = Nothing
    Set wsR = Nothing
    End With
     
    End Sub
    merci pour vos différents apports

    PS: le fichier test

    cordialement
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout saut de ligne entre les attributs d'un élément
    Par Zarky dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 01/11/2020, 17h23
  2. Balises <h5> <h6> qui font un saut de ligne entre les deux texte
    Par asp2p dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 29/05/2017, 15h57
  3. comment faire un saut de ligne entre les balise
    Par 123quatre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 02/10/2010, 17h21
  4. Réponses: 6
    Dernier message: 05/03/2009, 08h34
  5. [RegEx] Garder seulement les sauts de ligne entre deux balises
    Par Adjoint dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2009, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo