D
djo24
Guest
Bonjour,
dans le cadre d'un de mes projets universitaire, je dois améliorer un tableau de données.
Dans ce tableau, figure notamment une colonne de référence. Certaines références sont en 12 caractères, et d'autres en 14 caractères. Parmis celle en 14 caractères, il arrive que certaines soient des combinaisons de références déjà énoncées sous forme de 12 caractères auquelles on a ajouté 2 derniers caractères.
J'ai donc essayer d'imaginer une macro qui repête automatiquement ces équivalence et qu'elle m'efface automatiquement la ligne de la référence à 12 digits.
Malheureusement, la fonction "gauche" qui repert un nombre précis de caractères dans une cellule n'est pas programmable de la même façon en visual basic.
Je laisse une version du programme :
For i = 4 To MaxNbline1
Cell1 = .Left(.Cells(i, 3), 12)
If IsEmpty(Cell1) Then
Exit Sub
End If
For j = i + 1 To MaxNbline1
Cell2 = .Left(.Cells(j, 3), 12)
If IsEmpty(Cell2) Then
Exit Sub
End If
If (Cell1 = Cell2) And (i <> j) Then
.Cells(i, 3) = .concatener(.Cells(i, 3), .Right(Cell2, 2))
.Cells(j, 2).Delete
.Cells(j, 3).Delete
.Cells(j, 4).Delete
.Cells(j, 5).Delete
.Cells(j, 6).Delete
.Cells(j, 7).Delete
.Cells(j, 8).Delete
.Cells(i, 9).Delete
.Cells(j, 10).Delete
End If
Next j
Next i
L'idéal c'est de trouver une forme programme de la fonction "gauche", "droite" et "concatener".
Merci de me répondre si vous avez une idée.
Cordialement,
Djo24
dans le cadre d'un de mes projets universitaire, je dois améliorer un tableau de données.
Dans ce tableau, figure notamment une colonne de référence. Certaines références sont en 12 caractères, et d'autres en 14 caractères. Parmis celle en 14 caractères, il arrive que certaines soient des combinaisons de références déjà énoncées sous forme de 12 caractères auquelles on a ajouté 2 derniers caractères.
J'ai donc essayer d'imaginer une macro qui repête automatiquement ces équivalence et qu'elle m'efface automatiquement la ligne de la référence à 12 digits.
Malheureusement, la fonction "gauche" qui repert un nombre précis de caractères dans une cellule n'est pas programmable de la même façon en visual basic.
Je laisse une version du programme :
For i = 4 To MaxNbline1
Cell1 = .Left(.Cells(i, 3), 12)
If IsEmpty(Cell1) Then
Exit Sub
End If
For j = i + 1 To MaxNbline1
Cell2 = .Left(.Cells(j, 3), 12)
If IsEmpty(Cell2) Then
Exit Sub
End If
If (Cell1 = Cell2) And (i <> j) Then
.Cells(i, 3) = .concatener(.Cells(i, 3), .Right(Cell2, 2))
.Cells(j, 2).Delete
.Cells(j, 3).Delete
.Cells(j, 4).Delete
.Cells(j, 5).Delete
.Cells(j, 6).Delete
.Cells(j, 7).Delete
.Cells(j, 8).Delete
.Cells(i, 9).Delete
.Cells(j, 10).Delete
End If
Next j
Next i
L'idéal c'est de trouver une forme programme de la fonction "gauche", "droite" et "concatener".
Merci de me répondre si vous avez une idée.
Cordialement,
Djo24