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 :

Problème dans ma fonction delete


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut Problème dans ma fonction delete
    Bonjour à tous,

    Voila mon petit problème du jour.

    Je copie "feuill1" 7 fois pour ensuite supprimer des lignes selon certains critères.

    Quand je lance mon code pour supprimer certaines ligne, ce dernier fonctionne bien sauf dans deux cas:
    - celui ou les colonnes L à P sont vides
    - celui dans le cas ou seulement L et M sont vides.

    Dans ces deux cas, avec un code pourtant différent, je me retrouve avec des valeurs identiques et d'autres présente dans uniquement une des deux page.

    Voici le code que j'utilise pour le dernier cas, l'autre est identique sauf que toute les valeurs doivent être différentes de "":
    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
    55
    56
    57
    58
    59
    60
    Sub Immo_8()
    Application.ScreenUpdating = False
    Dim i As Integer
    With ThisWorkbook.Sheets("Feuil9")
    'Précisez le nom de votre feuille
                For i = .Range("L" & .Rows.count).End(xlUp).Row To 2 Step -1
    'je travaille sur la colonne c
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If .Range("L" & i).Value <> "" Then
                                       .Rows(i).delete
     
                            End If
                Next i
    End With
     
    With ThisWorkbook.Sheets("Feuil9")
    'Précisez le nom de votre feuille
                For i = .Range("M" & .Rows.count).End(xlUp).Row To 2 Step -1
    'je travaille sur la colonne c
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If .Range("M" & i).Value <> "" Then
                                       .Rows(i).delete
                            End If
                Next i
    End With
    With ThisWorkbook.Sheets("Feuil9")
    'Précisez le nom de votre feuille
                For i = .Range("N" & .Rows.count).End(xlUp).Row To 2 Step -1
    'je travaille sur la colonne c
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If .Range("N" & i).Value = "" Then
                                       .Rows(i).delete
                            End If
                Next i
    End With
     
    With ThisWorkbook.Sheets("Feuil9")
    'Précisez le nom de votre feuille
                For i = .Range("O" & .Rows.count).End(xlUp).Row To 2 Step -1
    'je travaille sur la colonne c
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If .Range("O" & i).Value = "" Then
                                       .Rows(i).delete
     
                            End If
                Next i
    End With
     
    With ThisWorkbook.Sheets("Feuil9")
    'Précisez le nom de votre feuille
                For i = .Range("P" & .Rows.count).End(xlUp).Row To 2 Step -1
    'je travaille sur la colonne c
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If .Range("P" & i).Value = "" Then
                                       .Rows(i).delete
     
                            End If
                Next i
    End With
    End Sub
    Je vous joins en photo une images de mes résultats.

    Si vous avez besoin de plus de détail dîtes moi.

    Merci par avance pour votre aide, vous êtes géniaux.

    PS :J'ai vérifié que mes cellules étaient bien vides.
    Images attachées Images attachées   

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Salut,
    A quoi te serts tes listes, Ne peux-tu pas utiliser les Filtres carrément ?

    Tu dis

    A+

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    Oui je peux filtrer mais je ne connais pas le code.

    Je viens d'essayer avec les filtres ça fonctionne mais quand j'exporte mes résultats les filtres disparaissent.

    Je ne peux donc pas me passer du delete.

    Si j'exporte mes résultats c'est pour classer mes lignes en fonction de certaines valeurs dans une table export par la suite.

  4. #4
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,

    Es tu certain qu'il n'y a pas d'espace par exemple...

    Tu peux ajouter la fonction trim pour éviter ce problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If trim(.Range("P" & i).Value) = "" Then
    Sinon... peux tu joindre ton fichier?

    Cdlt,

  5. #5
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    J'ai vérifié, il n'y a pas d'espace car j'arrive à remplacer ces cases par des zéros avec la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Conversion1()
     
        Dim Cell As Range
        With Worksheet("Feuil1")
        Application.ScreenUpdating = False
        For Each Cell In Range("L2:P" & [P3000].End(xlUp).Row)
        If Cell.Value = "" Then
        Cell.Value = "0"
            End If
        Next
        End With
       Application.ScreenUpdating = True
        End Sub
    Je n'arrive pas à joindre le fichier car celui est n"non valide".

  6. #6
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,
    Il serait possible d'avoir le fichier?
    ce serap lus rapide!

Discussions similaires

  1. probléme dans une fonction qui retourne un data reader
    Par saraenim dans le forum Windows Forms
    Réponses: 32
    Dernier message: 28/04/2008, 21h53
  2. Problème dans une fonction PL/SQL
    Par jnayna86 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 19/04/2008, 13h28
  3. Problème dans ma fonction
    Par El-Diablo- dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/01/2008, 13h06
  4. Problème dans une fonction
    Par onefootstep dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/11/2006, 09h46
  5. [Debutant] Problème dans une fonction
    Par haludo dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2006, 09h25

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