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
- Scanner qr code pc - Guide
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
Dim ilig As Integer, derlig As Integer Dim Nom As String 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 iligPar 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
Sub tralalalala() Dim i As Long Dim res As Long Dim ct As Long On Error GoTo ErrorHandler 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 Exit Sub ErrorHandler: MsgBox "aucune action dénouée aujourd'hui" End SubPour la gestion des erreurs et bien d'autres choses passionnantes, voici un très bon lien