Exemple de tri de base de données sous excel. Pas si simple que ça!!!
Source / Exemple :
Private Sub Lancement_Click()
'lancement du tri
'var
Dim ligneinsert As Integer
Dim colonneinsert As Integer
Dim ligne As Integer
Dim colonne As Integer
Dim lb As Integer
Dim cb As Integer
Dim l As Integer
Dim C As Integer
Dim lm As Integer
Dim cm As Integer
Dim li As Integer
Dim co As Integer
Dim lice As Integer
Dim coce As Integer
'debut
lb = 4
cb = 1
ligne = 4
colonne = 1
ligneinsert = 7
colonneinsert = 1
l = 4
C = 1
lm = 4
cm = 1
li = 4
co = 1
lice = 4
coce = 1
'tant que l'on est pas arrivé au bout de la base de données
While Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert).Value <> ""
'gestion des numéros innexistant
lice = 4
While Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des immos crées").Cells(lice, coce).Value <> ""
If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert).Text = Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des immos crées").Cells(lice, coce).Text Then
ligneinsert = ligneinsert + 1
End If
lice = lice + 1
Wend
cm = 1
While Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, cm).Value <> ""
lm = lm + 1
Wend
C = 1
While Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des immos correctes").Cells(l, C).Value <> ""
l = l + 1
Wend
If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert + 1).Value = "" Then
While Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des N° inexistant").Cells(ligne, colonne).Value <> ""
ligne = ligne + 1
Wend
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des N° inexistant").Cells(ligne, colonne).Value = Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert).Value
Else
'se positionner sur l'enregistrement voulu
While Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Value <> ""
If Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Value Like "*" & Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert).Value Then
' aller à 1
GoTo 1
Else
lb = lb + 1
End If
Wend
'vérification du cost center
1 If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert + 2).Value Like Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb + 3).Value & "*" Then
'vérification du lieu
If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert + 3).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb + 4).Value Then
'vérification du batiment
If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert + 4).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb + 5).Value Then
'vérification de la sous section
If Workbooks("Gestion d'immo présentation.xls").Sheets("Relevé des immos").Cells(ligneinsert, colonneinsert + 5).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb + 6).Value Then
'tout est bon
For C = 1 To 14
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des immos correctes").Cells(l, C).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Text
cb = cb + 1
Next
cb = 1
Else
'le cost center n'est pas bon
For cm = 1 To 14
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, cm).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Text
cb = cb + 1
Next
cb = 1
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, 15).Value = "erreur de sous centre"
End If
Else
'le lieu n'est pas bon
For cm = 1 To 14
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, cm).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Text
cb = cb + 1
Next
cb = 1
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, 15).Value = "erreur de batiment"
End If
Else
'le batiment n'est pas bon
For cm = 1 To 14
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, cm).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Text
cb = cb + 1
Next
cb = 1
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, 15).Value = "erreur de lieu"
End If
Else
'le sous centre n'est pas bon
For cm = 1 To 14
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, cm).Value = Workbooks("test base de données.xls").Sheets("DZ A FIN AVRIL 2003").Cells(lb, cb).Text
cb = cb + 1
Next
cb = 1
Workbooks("Gestion d'immo présentation.xls").Sheets("Etat des mauvaises affectations").Cells(lm, 15).Value = "erreur de cost center"
End If
End If
lb = 4
ligneinsert = ligneinsert + 1
Wend
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.