Bug code VBA
Résolu/Fermé
A voir également:
- Bug code VBA
- Bug yahoo mail - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code blocks free - Télécharger - Langages
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
18 mars 2010 à 10:21
18 mars 2010 à 10:21
Salut,
Tu veux supprimer toutes les lignes qui contiennent "DFP" en colonne D?
Si oui, tu as fait l'inverse. Je reprends ton code en l'annotant :
Tu veux supprimer toutes les lignes qui contiennent "DFP" en colonne D?
Si oui, tu as fait l'inverse. Je reprends ton code en l'annotant :
'on détermine la dernière ligne de la colonne A derlig = Range("A65536").End(xlUp).Row 'boucle de la dernière ligne à la deuxième For ilig = derlig To 2 Step -1 'on attribue à la variable Nom (déclarée As String j'espère) la valeur contenue dans la colonne D Nom = Range("D" & ilig).Value 'Si valeur dans "D" différente de "DFP" alors If Nom <> "DFP" Then 'on supprime la ligne Rows(ilig).Delete Shift:=xlUp 'fin du Si End If 'Au suivant... Next ilig
18 mars 2010 à 13:48
18 mars 2010 à 15:46
18 mars 2010 à 16:00
Par contre j'ai un nouveau problème dans ma marco suit à ce tri...
Je calcule un délai moyen de dénouement grâce à 3 colonnes....
Voilà le code si dessous de ma formule... Le souci est qu'il peut arriver mais c'est rare que la colonne L soit totalement vide... donc la formule ne peut pas s'exécuter ça me donne un message d'erreur "dépassement de capacité" et me plante le reste de ma macro en me soulignant dans le débogage la ligne avant End With. Dans le cas ou cette particularité se présente (c'est le cas avec mon fichier d'aujourd'hui...) J'aimerai que la macro finisse de s'exécuter et à la limite à la fin me mette un Msg Box disant "aucune action dénouée aujourd'hui
Dim i As Long
Dim res As Long
Dim ct As Long
res = 0
ct = 0
i = 2
With Sheets("Extraction SIGMA")
While (.Range("J" & i).Value <> "")
If (.Range("L" & i).Value <> "" And .Range("J" & i).Value = "1650") Then
res = res + ((.Range("L" & i).Value) - (.Range("K" & i).Value))
ct = ct + 1
End If
i = i + 1
Wend
Sheets("KPI").Range("D17").Value = res / ct
End With
18 mars 2010 à 16:09
Pour la gestion des erreurs et bien d'autres choses passionnantes, voici un très bon lien
18 mars 2010 à 16:32