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

VBA Access Discussion :

supprimer lignes vides dans le code [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 263
    Points : 182
    Points
    182
    Par défaut supprimer lignes vides dans le code
    Bonjour,

    Je dois reprendre un vieux projet élaboré avec Access 97.

    Le code que j'avais écrit à l'époque (j'en étais au stade de débutant dans l'écriture du code) n'a pas été véritablement structuré !..

    J'utilise les outils Smart Indent, l'utilitaire des retours à la ligne automatique, etc.. pour le redessiner correctement.

    Toutefois, je ne trouve pas d'utilitaire qui me permettrait de supprimer les nombreuses lignes vides qui se trouvent dans ce code !..

    Avez-vous une solutions SVP

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Salut,
    regarde si le code utilise dans le fil suivant peut t'aider
    http://www.developpez.net/forums/d67...s-base-access/
    il s'agira de detecter la longueur vide d'une ligne
    et de supprimer le cas echeant
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 263
    Points : 182
    Points
    182
    Par défaut
    Merci pour la réponse !..

    A partir du lien, j'arrive bien à créer la table, mais en finalité je ne découvre aucune piste qui me permettrait de supprimer les lignes vides dans mes functions ou Sub.

    En effet, quelle est la source (et le développement..) qui me permettra d'intégrer :

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    La procedure parcourt le code de la base, a toi d'y mettre les tests que tu souhaites appliquer

    Ici, le code aura une forme similaire a ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 1 To oAccess.VBE.VBProjects(1).VBComponents.Count
            With oAccess.VBE.VBProjects(1).VBComponents.item(i).CodeModule
            ' pour le remplacement d'une ligne entière
                For k = 1 To .CountOfLines
                    Cible = .Lines(k, 1)
                    'Debug.Print Cible
                    If Len(Cible) =0 Then
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 263
    Points : 182
    Points
    182
    Par défaut
    Merci pour cette nouvelle réponse.

    Toutefois, je bloque toujours sur la syntaxe qui me permettrait de supprimer la ligne!..

    Après exécution de ta ligne de code :

    quelle est la valeur de cible pour pouvoir effacer la ligne ?

    Merci à l'avance

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    C'est pas tant la valeur de Cible qui nous interesse, vu que lorsque la ligne est vide, Cible vaut ""
    pour la suppression, la fonction la plus souvent utiliser est Delete

    Je te laisse donc le soin de trouver la bonne syntaxe de code
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 263
    Points : 182
    Points
    182
    Par défaut
    Bonsoir,

    J'ai donc adapté le code en conséquence !..

    Le voici.

    J'ai réussi à le faire fonctionner !..

    Toutefois, il ne me donne pas de résultat probant !..

    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
    41
    42
    43
    44
    45
    46
    47
    48
    Liste_Procedures_Fonctions_VBA(pathbase As String) As Boolean
    Dim strSQL As String
    Dim Accmodule As Module
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim Cible As String
    Dim oAccess As New Access.Application
    Dim oDb As DAO.Database
     
    On Error GoTo fin
     
     
        With oAccess
            .Visible = False
            .OpenCurrentDatabase (pathbase)
            Set oDb = .CurrentDb
        End With
     
        For i = 1 To oAccess.VBE.VBProjects(1).VBComponents.Count
            With oAccess.VBE.VBProjects(1).VBComponents.Item(i).CodeModule
            ' pour le remplacement d'une ligne entière
                For k = 1 To .CountOfLines
                    Cible = .Lines(k, 1)
     
     
                    'If Left(Cible, 1) <> "'" Then
                    If Len(Cible) = 0 Then
            oAccess.VBE.VBProjects(1).VBComponents.Item(i).CodeModule.DeleteLines k
     
     
     
                    End If
                Next k
            End With
        Next i
     
        oDb.Close
        oAccess.DoCmd.Close , , acSaveYes
        Set oAccess = Nothing
        Set oDb = Nothing
        Liste_Procedures_Fonctions_VBA= True
    Exit Function
     
    fin:
        Liste_Procedures_Fonctions_VBA= False
        Resume Next
    End Function

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    attention, si tu supprimes une ligne, il faut oter 1 de k en principe

    je teste le resultat du code demain
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. Supprimer ligne vide dans une grid
    Par Edta dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 09/07/2013, 09h34
  2. Supprimer ligne vide dans un sous-formulaire
    Par madjon6 dans le forum Access
    Réponses: 4
    Dernier message: 17/01/2012, 10h58
  3. [WD16] Supprimer lignes vides dans excel
    Par EriCstoFF dans le forum WinDev
    Réponses: 2
    Dernier message: 09/09/2011, 10h34
  4. [WD-2003] Supprimer ligne vide dans tableau
    Par ginaub00 dans le forum Word
    Réponses: 1
    Dernier message: 27/05/2010, 17h09
  5. Supprimer des lignes vides dans un label
    Par benjhe dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/12/2007, 08h57

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