Z
zorg
Guest
Bonjour à tout le forum
une fois de plus j'ai un ch'tit souci en vba; j'ai parcouru en long en large et en travers les anciens messages mais rien à faire ça déconne
voici mon problème j'ai dans une colonne (A) et sur 6500 lignes environ une valeur dans chaque cellule ex: 106, 206, 307 , exp, box, par, 807 lqui peuvent se répéter et ne suive pas un ordre précis
Selon la valeur j'ai un traitement différent j'ai donc fait la macro suivante euh j'suis débutant donc ce n'est surement pas le code le plus efficace)
il n'y a que les cellules avec #N/A ou qui sont vides qui fonctionnent; le reste (valeur num ou text) n'est pas reconnu
est ce que qqu'un peut m'aider??
Sub Control_Famille()
Application.ScreenUpdating = False
Dim Famille As Integer
Dim Derligne As Integer
Derligne = 0
Sheets("Log").Select
Rows("2:65536").Select
selection.Delete Shift:=xlUp
Sheets("Encours").Select
Nbrligne = Range("A" & 65536).End(xlUp).Row
Val_NA = 0
Autre = 0
Vide = 0
Inconnue = 0
For Famille = 2 To Nbrligne
If IsError(Range("A" & Famille).Value) Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Vide = Vide + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
selection.Delete Shift:=xlUp
ElseIf IsEmpty(Range("A" & Famille).Value) = True Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Vide = Vide + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
ElseIf Range("A" & Famille).Value = "Autre" Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Autre = Autre + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
ElseIf Cells(Famille, "A").Value <> "406" Or Cells(Famille, "A").Value <> "307" Then 'etc yen a d'autre pour ceux qui n'auraient pas reconnu les véhicules de la marque au Lion
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Inconnue = Inconnue + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
End If
Next Famille
MsgBox "Vérification des familles véhicules terminée !" & Chr(10) & Chr(10) & _
Val_NA & " erreurs type : #N/A trouvées (lignes supprimées)" & Chr(10) & _
Vide & " erreurs type : Vide trouvées" & Chr(10) & _
Autre & " erreurs type : Autre trouvées" & Chr(10) & _
Inconnue & " erreurs type : inconnue trouvées" & Chr(10) & Chr(10) & _
"Chaque erreur est recopiée dans Feuil!Log", vbInformation, "Vérification des familles"
Application.ScreenUpdating = True
End Sub
une fois de plus j'ai un ch'tit souci en vba; j'ai parcouru en long en large et en travers les anciens messages mais rien à faire ça déconne
voici mon problème j'ai dans une colonne (A) et sur 6500 lignes environ une valeur dans chaque cellule ex: 106, 206, 307 , exp, box, par, 807 lqui peuvent se répéter et ne suive pas un ordre précis
Selon la valeur j'ai un traitement différent j'ai donc fait la macro suivante euh j'suis débutant donc ce n'est surement pas le code le plus efficace)
il n'y a que les cellules avec #N/A ou qui sont vides qui fonctionnent; le reste (valeur num ou text) n'est pas reconnu
est ce que qqu'un peut m'aider??
Sub Control_Famille()
Application.ScreenUpdating = False
Dim Famille As Integer
Dim Derligne As Integer
Derligne = 0
Sheets("Log").Select
Rows("2:65536").Select
selection.Delete Shift:=xlUp
Sheets("Encours").Select
Nbrligne = Range("A" & 65536).End(xlUp).Row
Val_NA = 0
Autre = 0
Vide = 0
Inconnue = 0
For Famille = 2 To Nbrligne
If IsError(Range("A" & Famille).Value) Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Vide = Vide + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
selection.Delete Shift:=xlUp
ElseIf IsEmpty(Range("A" & Famille).Value) = True Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Vide = Vide + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
ElseIf Range("A" & Famille).Value = "Autre" Then
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Autre = Autre + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
ElseIf Cells(Famille, "A").Value <> "406" Or Cells(Famille, "A").Value <> "307" Then 'etc yen a d'autre pour ceux qui n'auraient pas reconnu les véhicules de la marque au Lion
Sheets("Log").Select
Derligne = Range("C" & 65536).End(xlUp).Row
Sheets("Encours").Select
Inconnue = Inconnue + 1
Rows(Famille).Select
selection.Copy
Sheets("Log").Select
Range("A" & Derligne + 1).Select
ActiveSheet.Paste
Sheets("encours").Select
Range("A" & Famille) = 0
End If
Next Famille
MsgBox "Vérification des familles véhicules terminée !" & Chr(10) & Chr(10) & _
Val_NA & " erreurs type : #N/A trouvées (lignes supprimées)" & Chr(10) & _
Vide & " erreurs type : Vide trouvées" & Chr(10) & _
Autre & " erreurs type : Autre trouvées" & Chr(10) & _
Inconnue & " erreurs type : inconnue trouvées" & Chr(10) & Chr(10) & _
"Chaque erreur est recopiée dans Feuil!Log", vbInformation, "Vérification des familles"
Application.ScreenUpdating = True
End Sub