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 :

Macro Excel qui fige Excel à son lancement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Business analyst Data
    Inscrit en
    Février 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business analyst Data
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2022
    Messages : 3
    Par défaut Macro Excel qui fige Excel à son lancement
    Bonjour à tous,

    j'ai un petit soucis avec une macro, je m'explique :

    J'ai développé une macro qui permet de nettoyer un onglet (appelé Remises) d'un fichier, c'est à dire que la personne va venir copier/coller 5 colonnes de données dans cet onglet (à savoir, les colonnes de données proviennent d'autres fichier mais peu importe).

    La macro permet d'enlever la couleur si des cases sont surlignées, de supprimer les colonnes et lignes vides, de remettre les colonnes A,B,C,D et E au bon format, c'est à dire en standard avec en plus la colonne D sans séparateur de millier, mais visiblement le format standard suffit pour cette colonne et enfin elle permet d'afficher en rouge les doublons des 3 premières colonnes (et cela est très important) à l'aide d'une boucle.

    La macro fonctionne parfaitement sur un fichier test où il y a 86 lignes, en revanche pour le gros fichier (179 000 lignes) qui va être régulièrement utilisé, Excel se fige et je suis obligé de fermer Excel sans résultat du coup...

    Voici la Macro :

    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
    49
    50
    51
    52
    53
    54
    Sub Nettoyage_Fichier_CSV_BdC()
     
        Dim col, nbCells, i, j
     
     Sheets("Remises").Select
     Sheets("Remises").Activate
     
      On Error Resume Next
     
    'Réinitialiser couleur de remplissage
        Columns.Interior.ColorIndex = xlNone
     
    'Supprimer colonnes vides
       Cells.Range("A1:AZ1").SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
     
    'Supprimer Lignes vides
       [A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
     
    'Format colonnes A,B,C et D + Standard et colonne D sans millier
       Columns("A:E").Select
        Selection.NumberFormat = "General"
     
    'Gestion des Doublons
    données = "/"
    lignes = "/"
    doublon = ""
    i = 2
     
    Do While i < Range("A" & Rows.Count).End(xlUp).Row + 1
    If données Like "*/" & Range("A" & i) & Range("B" & i) & Range("C" & i) & "/*" Then
    doublon = "Doublon"
    Range("A" & i, "C" & i).Interior.ColorIndex = 3
    ligne = Split(lignes, "/")(UBound(Split(Split(données, Range("A" & i) & Range("B" & i) & Range("C" & i))(0), "/")))
    Range("A" & ligne, "C" & ligne).Interior.ColorIndex = 3
     
    Else
     
    données = données & Range("A" & i) & Range("B" & i) & Range("C" & i) & "/"
    lignes = lignes & i & "/"
     
    End If
     
    i = i + 1
     
    Loop
     
    If doublon = "Doublon" Then MsgBox ("vous avez des Doublons ! ils sont indiqués sur fond rouge")
    If doublon <> "Doublon" Then MsgBox ("Vous n'avez pas de doublon ! ")
     
       ActiveWorkbook.Save
     
       Range("A1").Select
     
    End Sub

    Plusieurs questions :

    Suis-je obligé de passer par une boucle pour afficher les doublons en rouge des 3 premières colonnes ?

    Est-ce la boucle qui fait planter Excel ?

    Avez-vous une solution qui me permet de faire fonctionner cette macro peu importe le nombre de ligne ?

    Je vous remercie par avance pour tout retour qui me permettrait d'avancer.

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    Pas vraiment étonnant que cela plante, votre boucle créant une chaine de caractères dont la longueur ne fait qu'augmenter à chaque tour (ligne 38) jusqu'à devenir très très très très longue. Une autre approche: trier le tableau sur les colonnes A, B et C, et ensuite parcourir le tableau trié: s'il y a des doublons, les lignes se suivent.

    Cordialement.

  3. #3
    Membre chevronné
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 228
    Par défaut
    Bonjour,

    la macro pourrait alimenter une colonne F avec une formule : concatener A&B&C, puis mise en forme conditionnelle de F : afficher les doublons, puis tri sur la couleur pour les montrer

    aucune boucle à gérer

  4. #4
    Candidat au Club
    Homme Profil pro
    Business analyst Data
    Inscrit en
    Février 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business analyst Data
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2022
    Messages : 3
    Par défaut
    Bonjour,

    Je vous remercie pour vos retours, étant en consulting à mi-temps dans cette entreprise, je vais prochainement tester et vous tiendrai au courant.

    Cordialement.

Discussions similaires

  1. Mannipuler un Word pdt lancement macro Excel
    Par el_pilacho dans le forum VBA Word
    Réponses: 1
    Dernier message: 10/10/2006, 14h38
  2. lancement macro excel depuis un script vb
    Par chicho dans le forum VBScript
    Réponses: 5
    Dernier message: 13/09/2006, 15h59
  3. Lancement macro excel à partir d'access
    Par frevale dans le forum Access
    Réponses: 3
    Dernier message: 11/04/2006, 13h11
  4. Macro excel qui ferme tous les fichiers .xls
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/01/2006, 20h21
  5. Réponses: 1
    Dernier message: 07/01/2006, 23h33

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