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 :

Excel 2003 VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut Excel 2003 VBA
    Bonjour, je vous explique ma situation assez compliquée.

    Je remplace un collègue ayant quitté ses fonctions. Il utilisait un fichier de suivi des demandes entrantes. J'ai du reprendre son fichier. Celui-ci utilisait une macro excel mais malheureusement je ne connais pas du tout le vba.
    Voici le 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
    Option Explicit
    Dim val As Variant, lig As Long
     
    Private Sub Worksheet_Change(ByVal sel As Range)
    If sel.CountLarge = 1 Then
        If val <> "" Then
            With Sheets("suivi")
                lig = .Cells(Columns(1).Rows.Count, 1).End(xlUp).Row + 1
                Rows(sel.Row).Copy Destination:=.Rows(lig)
                .Cells(lig, sel.Column).Value = val
                .Cells(lig, sel.Column).Interior.Color = 10092441
                .Cells(lig, 4).Value = Date
            End With
        End If
    End If
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal sel As Range)
    If sel.CountLarge = 1 Then
        val = sel.Value
    End If
    End Sub
    Voici mon onglet de base
    http://imageshack.us/photo/my-images/87/basevl.png

    Voici mon onglet de suivi
    http://imageshack.us/photo/my-images/191/suivi.png

    Actuellement toute modification dans les colonne Id, Mois ou date crée un log qui s'enregistre dans l'onglet de suivi.

    Par exemple pour la ligne 21, si l'on modifie le champ correspondant au mois et que l'on met décembre à la place d'octobre, une ligne est automatiquement créée dans l'onglet de suivi reprenant la ligne que l'on vient de modifier avec ses valeurs précédentes (ici la ligne sera recopiée et dans le champ correspondant au mois sera inscrit octobre). Cela permet de suivre toute les modifications effectuées sur l'onglet de base.

    Mon problème est le suivant :
    Une seule modification par ligne est possible actuellement et est suivie dans l'onglet "suivi". Par exemple si lors d'une modification je change l'Id et le mois, seul l'un des deux va être reporté dans l'onglet de suivi et l'autre restera inchangé.

    Je ne sais pas comment rajouter des colonnes qui vont être suivies.
    J'aimerais bien rajouter dans l'onglet "base" un nombre n de colonnes et en cas de modification dans ces colonnes, avoir également un reporting suivant le même principe.

    Merci de votre aide !

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 975
    Billets dans le blog
    2
    Par défaut
    Bonjour uzinagaz (ça promet ),

    Chez moi (excel 2003 aussi), la propriété CountLarge n'existe pas, donc j'ai du remplacer
    CountLarge par Count dans le code

    Après ça, ça fonctionne : chaque modification, quelle que soit sa colonne, est reportée dans l'autre feuille, même si je change plusieurs valeurs de la même ligne
    Le seul cas qui n'est pas pris en compte c'est quand on remplit une cellule qui était vide

  3. #3
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    Bonjour,

    Pour prendre en compte les évolutions , il faut examiner le code actuel.
    A chaque fois que l'on se déplace dans une cellule , on sauvegarde sa valeur ( et sa colonne ).
    Ensuite à chaque modification du feuillet , on recopie la ligne et on recopie la valeur sauvegardée.

    Actuellement , si l'on change successivement 2 cellules d'une même ligne , il y aura 2 lignes différentes dans l'onglet suivi.
    Avec le code actuel , on ne peut pas générer qu'une seule ligne.

    Il y a contradiction avec le fonctionnement que tu décris :
    Une seule modification par ligne est possible actuellement et est suivie dans l'onglet "suivi". Par exemple si lors d'une modification je change l'Id et le mois, seul l'un des deux va être reporté dans l'onglet de suivi et l'autre restera inchangé.

    je pense que tu n'a détecté dans Excel, le mode insertion( mode ou l'on modifie la valeur et qui s'acheve par 'enter' ).

    PS : avec ma version 2003 , la ligne suivante affiche une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If sel.CountLarge = 1
    j'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If selection.Count = 1

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, concernant CountLarge lire ceci http://www.developpez.net/forums/d10...2007-suivants/

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut
    Merci beaucoup ! Ca fonctionne nickel

    J'ai juste un dernier problème..

    Je ne sais pas si vous avez remarqué mais sur mon fichier nommé "suivi" s'affiche également la date de modification (la date à laquelle on a effectué une modif sur l'onglet "base" donc)

    Le problème est le suivant :

    Si sur le fichier "base" je crée une colonne par exemple "Description" celle-ci est placée en colonne 4.

    Or sur le fichier de suivi la colonne 4 est la colonne où est affichée la date de modification !

    Toute mes modifs sur la colonne "Description" ne sont donc pas visibles car le programme reporte dans cette colonne la date de modification et non la description.

    Voici mon fichier base :

    http://imageshack.us/photo/my-images/844/baseer.jpg/

    Voici mon fichier de suivi :

    http://imageshack.us/photo/my-images/822/suivi.jpg/

    Le détail est sur les screenshots si je vous ai embrouillé

    Merci encore ! Vous me sauvez !

Discussions similaires

  1. DLL COM entre VS2010 et Excel 2003 VBA
    Par talrashha dans le forum Développement Windows
    Réponses: 2
    Dernier message: 29/08/2012, 23h27
  2. Excel 2003 VBA- RECHERCHEV
    Par edjo123 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/06/2011, 16h42
  3. VBA-protection classeur et feuille sous Excel 2003 et 97
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 28/07/2006, 15h04
  4. [VBA-E]Excel 2002 / Excel 2003: influence sur VB?
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/06/2006, 20h17
  5. [VBA-E]Projet VB perdu dans un fichier Excel 2003
    Par cotmar dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/03/2006, 18h39

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