• Publicité

Archivage de commande client

Dans ce forum, vous pouvez poser toutes vos questions concernant l'utilisation de logiciels de bureautique (Microsoft Office, Open Office, etc.)

Modérateurs: Sebastien, Stéphane, Christophe

Archivage de commande client

Messagepar banane57 » 13 Mai 2017 16:48

Bonjour à tous,

J'ai un tableau où je gère mes commandes clients dans Excel, et j'aurais besoin de savoir comment il est possible d'archiver (=couper/coller) une commande (=une ligne Excel) dans un un Autre onglet 'Archives'

Les informations concernant la commande vont de la colonne A a O ( ont y trouve plusieurs info comme la date -que je dois rentrer manuellement a chaque commande :Boxe: - , le numéro de tel du client , le fournisseur , l'article a commander , ... )

Dans mon cas, le premier onglet s'appelle 'Commande Client'

Chaque ligne correspond donc à une commande et la colonne 'O' dénommée 'Archiver ?'
Je souhaiterais que si la colonne 'O' contient un 'X', la ligne passe de l'onglet 'Commande Client' à l'onglet 'Archives'.
Il faudrait que les tâches dans l'onglet 'Archives' se mettent les unes à la suite des autres.
Une ligne archivée dans l'onglet 'Archives' doit évidemment disparaitre de l'onglet 'Commande Client'.

Merci d'avance.
Valentin
banane57
No0b
No0b
 
Messages: 4
Enregistré le: 13 Mai 2017 15:31

Re: Archivage de commande client

Messagepar Sebastien » 13 Mai 2017 19:38

Bonjour,

Dans un autre post, nous avions répondu à une demande similaire avec une macro Excel (Macro Excel pour archivage).
J'ai repris la macro que j'ai adapté à ce que vous avez décrit dans votre message.

Le code VBA de la macro :
Code: Tout sélectionner
Sub archivage()

Dim ligne, col_fin As Integer

'largeur du tableau en nombre de colonnes
col_fin = 15

'Sélection de la feuille Commande Client
Sheets("Commande Client").Select
Range("A2").Select

'Traitement de l'archivage, jusqu'à ce qu'une ligne vide soit trouvée
' dans la feuille Activités

Do While ActiveCell.Value <> ""

    'Vérification du contenu de la colonne Archiver
   
   
    If ActiveCell.Offset(0, 14).Value = "X" Then
        'Si la colonne contient "X"
        'on note le numéro de la ligne et on coupe la ligne
        ligne = ActiveCell.Row
        Range(Cells(ligne, 1), Cells(ligne, col_fin)).Cut
       
        'Sélection de la feuille Archives
        Sheets("Archives").Select
        Range("A2").Select
            'On recherche la première ligne vide poutr coller les données coupées
            'Tant qu'une ligne n'est pas vide, on sélectionne la ligne suivante
            'on colle sur la première ligne vide trouvée
            If ActiveCell.Value <> "" Then
                Do While ActiveCell.Value <> ""
                ActiveCell.Offset(1, 0).Select
                Loop
                ActiveSheet.Paste
            Else
                ActiveSheet.Paste
            End If
       
        'on retourne sur la feuille Commande Client et on se repositionne sur la ligne traitée
        Sheets("Commande Client").Select
        Range("A" & ligne).Select
    End If
   
    'On traite la ligne suivante
    ActiveCell.Offset(1, 0).Select

'On relance le traitement
Loop

'le traitement est terminé, nous allons supprimer les lignes vides
Call ligne_vide

End Sub


Sub ligne_vide()
'suppression de toutes les lignes qui n'ont pas de données en première colonne
On Error Resume Next
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub


Voici un lien vers un fichier Excel contenant le code indiqué ci-dessus :
http://www.astucesinternet.com/data/images_forum/Macro_archives2.zip

Fonctionnement de la macro :

Deux onglets dans le fichier : "Commande Client" et "Archives".
La feuille "Commande Client" contient un bouton ARCHIVER permettant de lancer la macro d'archivage.

Lorsque l'on lance la macro, elle parcourt, ligne par ligne, la feuille "Commande Client" et vérifie si un X (en majuscule) est présent dans la colonne O.
Si un X est présent, la ligne est coupée vers la feuille "Archives".
La macro fait ça sur toutes les lignes. La macro s’arrête dès qu'elle détecte une cellule vide dans la colonne A de la feuille "Commande Client" (il faut donc que vos commandes aient toujours quelque chose de renseigné dans la colonne A sinon la macro s’arrêterait à tort en pensant que la ligne est vide).

Je vous invite à tester le fichier que j'ai mis en lien avec des données pour voir si ça correspond à votre besoin.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5352
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Archivage de commande client

Messagepar banane57 » 27 Mai 2017 13:30

10 ans plus tard je suis de retour ;D

C'est impeccable comme macro !

Cependant , sur ton fichier ça fonctionne parfaitement mais lorsque j'essaye de l'intégrer au mien j'ai une erreur 400.

Help ! :x_x:

Merci d'avance
banane57
No0b
No0b
 
Messages: 4
Enregistré le: 13 Mai 2017 15:31

Re: Archivage de commande client

Messagepar Sebastien » 28 Mai 2017 21:23

Salut,

Pour que la macro fonctionne, il faut que le contexte soit strictement identique (les noms de pages par exemple). Le plus simple serait de nous mettre ton fichier en partage afin qu'on tente d'intégrer la macro.

Tu peux utiliser le site http://www.cjoint.com/ et poster l'URL ici. Avant de partager ton fichier sur internet, je t'invite à retirer au préalable toutes les données personnelles et/ou confidentielles.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5352
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Archivage de commande client

Messagepar banane57 » 30 Mai 2017 08:55

Bonjour ,

Et voila le lien du fichier http://www.cjoint.com/c/GEEh10uRMIM :Boxe:
banane57
No0b
No0b
 
Messages: 4
Enregistré le: 13 Mai 2017 15:31

Re: Archivage de commande client

Messagepar Sebastien » 30 Mai 2017 22:11

Je pense avoir trouvé une solution. Le temps de modifier le code VBA et de tester la macro et je reposte un fichier demain en fin de journée si possible.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5352
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Archivage de commande client

Messagepar banane57 » 31 Mai 2017 08:08

Bonjour !

Ne bouge plus ! J'ai certainement commis une erreur de débutant , en effet , au lieu de mettre le code dans "ThisWorkBook" , je l'ai juste mis sur le classeur commande.

Du coup j'ai supprimé le code que j'avais mis sur le classeur "Commande" , je l'ai mis sur "ThisWorkBook" et la ça fonctionne impeccable.

Encore merci pour ta disponibilité et ton efficacité !
banane57
No0b
No0b
 
Messages: 4
Enregistré le: 13 Mai 2017 15:31

Re: Archivage de commande client

Messagepar Sebastien » 31 Mai 2017 21:32

banane57 a écrit:Ne bouge plus ! J'ai certainement commis une erreur de débutant , en effet , au lieu de mettre le code dans "ThisWorkBook" , je l'ai juste mis sur le classeur commande.

Bien vu.
J'avais trouvé une commande pour que cela fonctionne (il faut activer la feuille avant de faire la sélection de donnée).
En mettant :
Code: Tout sélectionner
'Sélection de la feuille Archives
Sheets("Archives").Activate
Sheets("Archives").Range("A2").Select

à la place de :
Code: Tout sélectionner
'Sélection de la feuille Archives
Sheets("Archives").Select
Range("A2").Select


Dans le fichier que j'avais mis en exemple, la macro avait été insérée dans un module VBA et pas dans une feuille (c'est la seule différence qu'il y a avec ton fichier).

Dans tous les cas, merci de nous avoir fait un retour ;)

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5352
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Archivage de commande client

Messagepar paulinegigi » 07 Oct 2017 15:04

Bonjour,

J'ai besoin de réaliser un tableau excel pour mon travail. Il s'agit d'un tableau avec pas mal de formule et je souhaiterai avoir une lacro qui me permettrai de noter que ma ligne est complete et que quand je click sur ma macro celle ci coupe les ligne complète et colle seulement les valeur dans une feuille archivage. Et ma macro supprimerai aussi les ligne vide qui viennent d'être coupée. je ne sais pas si je suis compréhensible.
J'ai pas mal vadrouillé sur votre forum et ait trouvé un modèle de macro qui m'allait impecable mais quand je la colle dans le VBA celle ci archibe bien mais ne supprime pas la ligne vide.

Pouvez vous m'aider?
paulinegigi
No0b
No0b
 
Messages: 1
Enregistré le: 07 Oct 2017 14:44


Retourner vers Forum d'entraide : Bureautique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités

  • Publicité