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 :

Référence circulaire diabolique [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut Référence circulaire diabolique
    Bonjour,

    Excusez-moi de mettre directement le classeur en pièce jointe mais, là, le problème est trop dépendant des données.
    J'ai écrit une fonction VBA qui utilise les données d'un tableau (listobject). Elle fonctionne MAIS :
    Si je l'utilise cette fonction sous le tableau, c'est à dire en colonne A, B ou C et que j'inscris quelque chose en colonne A, mais sous le tableau, je provoque une référence circulaire. C'est la fonction VBA qui est signalée comme référence circulaire.
    J'ai recopié les données dans un nouveau classeur et j'ai le même problème.

    En vous remerciant d'avance.
    PJ :Référence_circulaire.xlsm

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Peut être avec le code suivant (ajout et modification sont signalés par des ///)
    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
    Function TrouveDate(Nom As Range, Plage As Range) As Date
        Dim C As Range, ResDate As Date
        Application.Volatile
        Application.EnableEvents = False
     
    '/// ajout et modif
    Dim LigDeb&
    Dim LigFin&
    LigDeb& = Plage.Cells(1, 1).Row
    LigFin& = LigDeb& + Plage.Rows.Count - 1
        For i = LigFin& To LigDeb& Step -1
    '///
     
    '''    For i = Cells(Rows.Count, Plage.Column).End(xlUp).Row To Plage.Row Step -1
            Debug.Print Cells(i, Plage.Column).Value
            If Application.CountIf(Plage, Nom) = 1 And Cells(i, Plage.Column).Value = Nom Then
                TrouveDate = Cells(i, Plage.Column).Offset(, 1).Value
                Exit Function
            End If
            If Cells(i, Plage.Column).Value <> Cells(i - 1, Plage.Column).Value Or _
                    Cells(i, Plage.Column).Offset(, 1).Value <> Cells(i - 1, Plage.Column).Offset(, 1).Value Or _
                    Cells(i, Plage.Column).Offset(, 2).Value <> Cells(i - 1, Plage.Column).Offset(, 2).Value Then
                If Cells(i, Plage.Column).Value = Nom Then
                    If Cells(i - 1, Plage.Column) = Nom Then
                        If Cells(i - 1, Plage.Column).Offset(, 2) + 1 = Cells(i, Plage.Column).Offset(, 1) Then
                            ResDate = Cells(i - 1, Plage.Column).Offset(, 1)
                        ElseIf ResDate = 0 Then
                            TrouveDate = Cells(i, Plage.Column).Offset(, 1).Value
                            Exit Function
                        Else
                            TrouveDate = Cells(i, Plage.Column).Offset(, 1).Value
                            Exit Function
                        End If
                    End If
                End If
            End If
        Next i
        TrouveDate = ResDate
        Application.EnableEvents = True
    End Function

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Alors là, chapeau ! Tu me tires une belle épine du pied ! J'aurais pu chercher longtemps, et pourtant j'ai tout de suite compris - grâce à toi - mon erreur.

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/06/2006, 17h02
  2. [SQL 2K5] Pb : ON DELETE CASCADE : référence circulaire
    Par n00bi dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 29/05/2006, 08h48
  3. Référence circulaire
    Par Mvu dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2006, 14h38
  4. [EXCEL] : référence circulaire à cause d'une macro
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2006, 10h41
  5. [DEB] DBdesigner 4 et référence circulaire
    Par Ranbaz dans le forum DBDesigner
    Réponses: 1
    Dernier message: 13/07/2005, 17h32

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