Bug, dans macro suppression de ligne

Bonjours à tous,

j'ai fais une macro qui me supprime les lignes ou il n'y a pas de "0" ou de cellules vides mais elle ne marche plus, je ne sais pas pourquoi.

aider moi s'il vous plait

Jawst

bug

Bonsoir,

Tu testes un "0" valeur texte, si tu as un 0 nombre il n'est pas identifié.

Cordialement.

donc il faut pas que je mette les guillemets ?

Si le zéro que tu testes est un nombre, il vaudrait mieux pas... mais

En fait il faut savoir quel est l'objectif, car si tu mets <> 0 And <> "" cela a pour résultat d'exclure les cellules vides.

j'ai essayer mais ça ne marche pas

Jawst a écrit :

j'ai essayer mais ça ne marche pas

et si cela fonctionné... il faudrait qu'il se passe quoi ?

Il faudrait que tu mettes un fichier pour qu'on voit sur pièces, et que tu précises les conditions de suppression.

en faite cette macro marche très bien sur le test que j'ai fais (piece jointe)

Mais pas du tout sur un autre classeur et je sais pas pourquoi.. (l'autre classeur est trop gros je peux pas l'envoyer ici)

10test.xlsm (15.60 Ko)

Oui ça fonctionne, donc on ne peut rien voir.

Cela doit tenir au type de données de ton fichier.

bon je t'ai extrait une parte de mon classeur,

je t'explique, en gros ma macro va me copier la page Qualite sur la page extrait (pour garder une source), elle va me supprimer les dates 2014, les fournisseurs du non de Trane, les colonnes dont je n'ai pas besoin et normalement les lignes ou il y'a pas de celulle vide ou contenant un 0 dans la colonne X, qui devient après suppression des colonnes inutiles, la colonne O.

mais ça me met une erreur je ne sais pas pourquoi

8classeur1.xlsm (273.99 Ko)

Je débute par une erreur 1004 !

Avec des qualifications telles que Worksheets(2), feuille qui est devenue la 1, et ActiveSheet toujours susceptible de variation si la macro n'est pas affectée à un bouton qui oblige à être sur cette feuille pour la lancer (sécurité relative car si elle peut être lancée de la boîte de dialogue, on peut donc être n'importe où).

Je vais reprendre.


Tu cumules avec une telle définition de plage :

Worksheets(1).Range(Range("A1").Offset(A, b), Range("AZ4000").Offset(f, g))

Je suis étonné que cela ne déclenche pas d'erreur. J'ai testé pour voir quelle plage était renvoyée, c'est A1:AZ4000 !

Est-ce bien cette plage là qui est recherchée ? Pourquoi ces Offset inopérants alors ?

Bon ! Ta macro était un agrégat d'éléments disparates !

Réécrite entièrement, elle donne finalement le résultat attendu, bien qu'un peu lente à mon goût (mais c'est un peu inhérent à la méthode utilisée) . Du coup, je ne sais quel était exactement le problème...

Sub Copierpage()
    Dim i As Integer, DernLigne As Integer
    With Worksheets("extrait")
        Worksheets("Qualite").Range("A1:AZ4000").Copy .Range("A1:AZ4000")
        DernLigne = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("T2:T" & DernLigne).Value = .Range("T2:T" & DernLigne).Value
        .Range("A:E,I:J,P:Q,AA:AG,AJ:AT").Delete
        For i = DernLigne To 2 Step -1
            If Year(.Cells(i, 1).Value) = 2014 Then .Rows(i).Delete
            If UCase(.Cells(i, 2).Value) = "TRANE" Then .Rows(i).Delete
            If .Cells(i, 15) <> 0 And .Cells(i, 15) <> "" Then .Rows(i).Delete
        Next i
    End With
End Sub

J'ai introduit une ligne avant suppression des colonnes pour passer la colonne T (qui est conservée) en valeurs, ses formules étant cassées par la suppression de la colonne AG.

Cordialement.

Bonjour ,

si cela "te met une erreur" la première chose à faire c'est de lire ce message d'erreur ...! puis nous dire pour qu'elle ligne de code il apparaît !

Bonjour pierre-jy,

A ce que j'ai compris, il ne s'agissait pas d'une erreur d'exécution mais du fait que la macro ne produisait pas le résultat attendu...

J'ai eu des erreurs lors d'un premier test parce que le fichier avait été "simplifié" pour le forum mais la macro n'avait pas été adaptée en conséquence des simplifications. Ensuite comme elle était formé par l'agrégation d'au moins 4 éléments d'origines différentes faits indépendamment, le mieux était de commencer par la réécrire... Moyennant quoi, elle donne le résultat prévu ! (ça j'ai passé du temps à le vérifier).

Cordialement.

ouaaa merci beaucoup,

elle marche super bien et met beaucoup moins de temp, merci

je sais que mon code est sale mais c'était ma première macro

en tout cas merci beaucoup

jawst

Rechercher des sujets similaires à "bug macro suppression ligne"