Bonjour,
Je joins un exemple avec une petite partie de mon tableau.
En page "Recen" j'ai un tableau avec plus de 15000 lignes. (là se trouve qu'une partie)
Sachant que le nom de la rue se trouve toujours en colonne C.
Et j'aimerai avoir le résultat de la page "Résultat"
J'avais eu le même souci l'année passer et une personne m'avait gentiment fait un code pour "visual Basic" tout fonctionner mais là, la numérotation n'est pas la même et je ne peux pas m'en servir.
Merci pour votre aide
Sylvie
Voici la formule : (Y a t-il possibilité de la transformer ? merci)
Option Explicit
Sub test()
Dim I As Integer, J As Integer, K As Integer, Ligne As Integer, MaPlage As Range
I = 2
Ligne = 1
With Sheets("Recen Bambecque - 1906")
J = I
While .Cells(I, 1) <> ""
If .Cells(I, 3) = .Cells(I + 1, 3) Then
I = I + 1
Else
For K = J To I
Sheets("Résultat").Cells(Ligne, 1) = .Cells(K, 1)
Sheets("Résultat").Cells(Ligne, 2) = .Cells(K, 2)
Sheets("Résultat").Cells(Ligne, 3) = .Cells(K, 3)
Sheets("Résultat").Cells(Ligne, K - J + 4) = Sylvie(Range(.Cells(K, 4), .Cells(K, 11)))
Next K
I = I + 1
J = I
Ligne = Ligne + 1
End If
Wend
End With
End Sub
Function Sylvie(Plage As Range) As String
Application.Volatile
If Plage.Rows.Count <> 1 Then
Sylvie = "Erreur de sélection"
Exit Function
End If
Dim Cellule As Range
For Each Cellule In Plage
If Cellule <> "" Then
Select Case Cellule.Column - Plage.Column + 1
Case 1
Sylvie = Sylvie & Trim(Cellule)
Case 2
Sylvie = Sylvie & " " & Trim(Cellule)
Case 3
Sylvie = Sylvie & " " & Trim(Cellule)
Case 4
Sylvie = Sylvie & " Demeurant à " & Trim(Cellule)
Case 5
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 6
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 7
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 8
Sylvie = Sylvie & " - Observation : " & Trim(Cellule)
End Select
End If
Next
End Function
Je joins un exemple avec une petite partie de mon tableau.
En page "Recen" j'ai un tableau avec plus de 15000 lignes. (là se trouve qu'une partie)
Sachant que le nom de la rue se trouve toujours en colonne C.
Et j'aimerai avoir le résultat de la page "Résultat"
J'avais eu le même souci l'année passer et une personne m'avait gentiment fait un code pour "visual Basic" tout fonctionner mais là, la numérotation n'est pas la même et je ne peux pas m'en servir.
Merci pour votre aide
Sylvie
Voici la formule : (Y a t-il possibilité de la transformer ? merci)
Option Explicit
Sub test()
Dim I As Integer, J As Integer, K As Integer, Ligne As Integer, MaPlage As Range
I = 2
Ligne = 1
With Sheets("Recen Bambecque - 1906")
J = I
While .Cells(I, 1) <> ""
If .Cells(I, 3) = .Cells(I + 1, 3) Then
I = I + 1
Else
For K = J To I
Sheets("Résultat").Cells(Ligne, 1) = .Cells(K, 1)
Sheets("Résultat").Cells(Ligne, 2) = .Cells(K, 2)
Sheets("Résultat").Cells(Ligne, 3) = .Cells(K, 3)
Sheets("Résultat").Cells(Ligne, K - J + 4) = Sylvie(Range(.Cells(K, 4), .Cells(K, 11)))
Next K
I = I + 1
J = I
Ligne = Ligne + 1
End If
Wend
End With
End Sub
Function Sylvie(Plage As Range) As String
Application.Volatile
If Plage.Rows.Count <> 1 Then
Sylvie = "Erreur de sélection"
Exit Function
End If
Dim Cellule As Range
For Each Cellule In Plage
If Cellule <> "" Then
Select Case Cellule.Column - Plage.Column + 1
Case 1
Sylvie = Sylvie & Trim(Cellule)
Case 2
Sylvie = Sylvie & " " & Trim(Cellule)
Case 3
Sylvie = Sylvie & " " & Trim(Cellule)
Case 4
Sylvie = Sylvie & " Demeurant à " & Trim(Cellule)
Case 5
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 6
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 7
Sylvie = Sylvie & " - " & Trim(Cellule)
Case 8
Sylvie = Sylvie & " - Observation : " & Trim(Cellule)
End Select
End If
Next
End Function
Dernière édition: