Pb macro excel

BN44 -  
benj44 Messages postés 21 Statut Membre -
Bonjour,

j'ai un petit problème de programmation
en effet, j'essaie de copier certaines données d'une cellule à une autre sous excel
mais, la macro ne doit pas prendre les cellules vides

je m'explique :

par exemple, j'ai trois colonnes différentes
une quantité, l'autre article et une prix
si la quantité est nulle donc la cellule est vide, la macro ne fait rien
par contre si la quantité est de 1, la macro copie l'article et son prix dans un tableau puis l'enregistre

merci de répondre si vous connaissez la réponse car je suis à cours d'idée
A voir également:

7 réponses

benj44 Messages postés 21 Statut Membre
 
Bonjour,

j'ai un petit problème de programmation
en effet, j'essaie de copier certaines données d'une cellule à une autre sous excel
mais, la macro ne doit pas prendre les cellules vides

je m'explique :

par exemple, j'ai trois colonnes différentes
une quantité, l'autre article et une le prix
si la quantité est nulle donc la cellule est vide, la macro ne fait rien
par contre si la quantité est de 1, la macro copie l'article et son prix dans un tableau puis l'enregistre

merci de répondre si vous connaissez la réponse car je suis à cours d'idée
0
LePierre Messages postés 249 Statut Membre 338
 
bonjour

essaye ce petit code :
Sub test()
    Lig = ActiveCell.Row
    Quantité = Cells(Lig, 1).Value
    If Quantité <> "" Then
        'exemple de procédure
        Range("A" & Lig & ":C" & Lig).Select
        Selection.Copy
        Sheets("Feuil2").Select
        Range("A2").Select
        ActiveSheet.Paste
    End If
End Sub

je considère que les quantités sont en colonne A.
Sélectionne une cellule en A contenant une valeur et lance la procédure "Test" : les données seront collées sur Feuil2 en A2:C2.
Est-ce que cela t'éclaire un peu ?

à plus
0
benj44 Messages postés 21 Statut Membre
 
Bonjour lePierre et merci pour ta réponse,
cela m'a en parti éclairer même si ca ne marche pas très bien sur mon application

En effet, la sélection n'arrive pas à se copier sur l'autre feuille malgré ce code
Je vais essayer de réfléchir au pb à partir de ton code
0
benj44 Messages postés 21 Statut Membre
 
En fait, ta formule marche très bien désolé.
Par contre, elle ne prend que la première ligne où il y a une quantité et ne poursuit pas sa recherche

Sub test()
'
' test Macro
'

'
Range("l5:L120").Select
Lig = ActiveCell.Row
Quantité = Cells(Lig, 12).Value
If Quantité <> "" Then
Range("l5:L120").Select
'exemple de procédure
Range("L" & Lig & ":O" & Lig).Select
Selection.Copy
Sheets("Ventes produits").Select
ActiveCell.Offset(6, 0).Range("a2:a2007").Select
Range("a2").Select
ActiveSheet.Paste
End If

End Sub

J'aimerais que la macro récupère toutes les quantités et les articles lorsqu'il y a une quantité dans la colonne
puis qu'elle les copie dans un tableau.
Merci de répondre si vous avez la réponse
0
LePierre Messages postés 249 Statut Membre 338
 
Bonjour

Essaye ce nouveau code :
Sub Test2()
    FeuilleEnCours = ActiveSheet.Name
    LigVente = 6
    For Lig = 5 To 120
        Quantité = Cells(Lig, 12).Value
        If Quantité <> "" Then
            'exemple de procédure
            Range("L" & Lig & ":O" & Lig).Select
            Selection.Copy
            Sheets("Ventes produits").Select
            Range("a" & LigVente).Select
            ActiveSheet.Paste
            LigVente = LigVente + 1
            Sheets(FeuilleEnCours).Select
        End If
    Next Lig
End Sub

Tu te places sur la feuille qui contient les données et tu lances la procédure "Test2".
Les données non vides seront copiées à partir de la ligne 6 (LigVente = 6) colonne A de la feuille "Ventes produits".
A plus
0
benj44 Messages postés 21 Statut Membre > LePierre Messages postés 249 Statut Membre
 
Sa marche super merci
sauf que quand je ferme et que je réouvre mon application, le tableau ne rajoute pas de ligne et écrase les anciennes données.
Répond moi si tu trouve la réponse merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benj44 Messages postés 21 Statut Membre
 
je me suis sûrement mal exprimé,
en fait,j'aimerais que la macro continue la copie des données à l'endroit où s'arrête les lignes du tableau
et ainsi, qu'elle reprenne le copiage de nouvelles données à la fin du tableau
j'espère être assez clair
merci de vos réponses
0
LePierre Messages postés 249 Statut Membre 338
 
bonjour

voici le code modifié pour coller les données à la suite des autres dans la feuille "Ventes produits" :
Sub Test2()
    FeuilleEnCours = ActiveSheet.Name
    Sheets("Ventes produits").Select
    LigFin = Range("A6").End(xlDown).Row
    LigVente = LigFin + 1
    Sheets(FeuilleEnCours).Select
    For Lig = 5 To 120
        Quantité = Cells(Lig, 12).Value
        If Quantité <> "" Then
            'exemple de procédure
            Range("L" & Lig & ":O" & Lig).Select
            Selection.Copy
            Sheets("Ventes produits").Select
            Range("a" & LigVente).Select
            ActiveSheet.Paste
            LigVente = LigVente + 1
            Sheets(FeuilleEnCours).Select
        End If
    Next Lig
End Sub

à plus
0
benj44 Messages postés 21 Statut Membre
 
Si j'ai bien compris, je dois remplacer l'ancienne formule par celle-ci
Mais le problème, c'est que il y a un bug
en effet, Range ("a" & LigVente).Select échoue

FeuilleEnCours = ActiveSheet.Name
Sheets("Ventes produits").Select
LigFin = Range("A3").End(xlDown).Row
LigVente = LigFin + 1
Sheets(FeuilleEnCours).Select
For Lig = 5 To 120
Quantité = Cells(Lig, 12).Value
If Quantité <> "" Then
'exemple de procédure
Range("L" & Lig & ":O" & Lig).Select
Selection.Copy
Sheets("Ventes produits").Select
Range("a" & LigVente).Select Cette ligne bog
ActiveSheet.Paste
LigVente = LigVente + 1
Sheets(FeuilleEnCours).Select
End If
Next Lig
End Sub

Merci de repondre si vous connaissez la réponse
0
benj44 Messages postés 21 Statut Membre
 
Je suis désolé, je viens de trouver mon erreur
merci beaucoup Lapierre tu gère
0