Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Erreur "Déclaration existante dans la portée en cours"

Hanjen

XLDnaute Nouveau
Bonjour à tous,
Je fais face à ce problème, j'ai dupliqué des lignes de macro selon une donnée initiale entré par l'utilisateur.
Je me retrouve avec cette erreur.
VBA me souligne l'erreur sur une ligne .
Je ne sais pas si je peux appeler ça une "instruction" mais ces lignes permettent de lire une donnée dans une inputbox et si la donnée n'est pas de la forme attendu on demande "goto reprise".
Le fait de l'avoir dupliqué VBA n'aime pas ça. Savez-vous pourquoi?

Je m'excuse, je ne peux vous envoyer le fichier car le projet est bien avancé et confidentiel.
Merci pour votre aide


 

fanch55

XLDnaute Barbatruc
Bonjour, quand vous suivez une vidéo, reproduisez ce qui est affiché sans rien omettre ou altérer :

Code de la vidéo :

Code de votre classeur :
Enrichi (BBcode):
Option Explicit
Sub addinfo(page, lignes)

    Dim dl As Long
    Dim page As String
    
    page = Pages
    
    If Sheets(page).Range("b5") = Empty Then
        dl = 5
    Else
        Sheets(page).ListObject(1).ListRows.Add
        dl = Sheets(page).Range("b4").End(x1down).Row + 1
    End If
    
    With Sheets(page)
        .Range("b" & dl) = .Range("A1") 'num d'opération
        .Range("c" & dl) = Range("c5") 'date
        .Range("d" & dl) = Range("c" & lignes) 'num de compte D
        .Range("e" & dl) = Range("d" & lignes) 'description du compte
        .Range("f" & dl) = Range("g3") 'num du doc
        .Range("g" & dl) = Range("e" & lignes) 'valeur débit
        .Range("h" & dl) = Range("f" & lignes) 'valeur crédit
    End With
    
    If Pages = "GrandJournal" Then
        Sheets("GrandJournal").Range("i" & dl) = Range("c3") & Range("a1")
    End If

End Sub

Proposition de code :
VB:
Option Explicit
Sub addinfo(Journal As String, Form_Ligne)

    Dim Idx As Long
    With Sheets(Journal).ListObjects(1)
        Idx = .ListRows.Add.Index
        Range(.Name & "[Num]").Rows(Idx) = .Parent.Range("A1")
        Range(.Name & "[Date]").Rows(Idx) = Range("C5")
        Range(.Name & "[Compte]").Rows(Idx) = Range("C" & Form_Ligne)
        Range(.Name & "[Description du compte]").Rows(Idx) = Range("D" & Form_Ligne)
        Range(.Name & "[Commentaire]").Rows(Idx) = Range("G3")
        Range(.Name & "[Débit]").Rows(Idx) = Range("E" & Form_Ligne)
        Range(.Name & "[Crédit]").Rows(Idx) = Range("F" & Form_Ligne)
        If .Parent.Name = "GrandJournal" Then
            ' là je ne comprend pas trop l'utilité ???
            Range(.Name & "[Vérification]").Rows(Idx) = Range("c3") & Range("a1")
        End If
    End With

End Sub
 

ram_ia

XLDnaute Junior
Bonjour et un grand grand merci pour vos retours. J'ai mis en application et testé. Cela fonctionne bien dans le journal correspondant mais rien ne se place dans le grand journal. Ca m'énerve de ne pas comprendre !
 

fanch55

XLDnaute Barbatruc
Bonjour et un grand grand merci pour vos retours. J'ai mis en application et testé. Cela fonctionne bien dans le journal correspondant mais rien ne se place dans le grand journal. Ca m'énerve de ne pas comprendre !
C'est normal, rien n'appelle la mise à jour du grand journal dans le classeur fourni .
Je n'ai pas visionné entièrement la vidéo indiquée, c'est à vous de voir où le narrateur cible le grand journal .
Bon courage .
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…