Bug code VBA
Résolu
Antoine
-
Antoine -
Antoine -
Bonjour, j'ai une formule pour ne garder que certaines informations dans une colonne précise mais lorsque je l'exécute elle supprime tout alors que j'ai vérifié il y a au moins 50 lignes dans ma colonne qui ont le mot recherché voici le code j'ai l'impression que c'est le Step -1 qui bug mais je ne sais pas quoi mettre à la place
derlig = Range("A65536").End(xlUp).Row
For ilig = derlig To 2 Step -1
Nom = Range("D" & ilig).Value
If Nom <> "DFP" Then
Rows(ilig).Delete Shift:=xlUp
End If
Next ilig
Merci d'avance.
derlig = Range("A65536").End(xlUp).Row
For ilig = derlig To 2 Step -1
Nom = Range("D" & ilig).Value
If Nom <> "DFP" Then
Rows(ilig).Delete Shift:=xlUp
End If
Next ilig
Merci d'avance.
A voir également:
- Bug code VBA
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
1 réponse
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
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
Pour la gestion des erreurs et bien d'autres choses passionnantes, voici un très bon lien