un changement à faire dans les balises de code

  • Initiateur de la discussion Initiateur de la discussion Sylvie64
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sylvie64

XLDnaute Occasionnel
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
 
Dernière édition:
Re : un changement à faire dans le code

Bonjour,

Pourrais-tu modifier ton message en utilisant les balises de code :

Clique sur "Modifier le message"
puis sélectionne ton code et appuie sur l'icone #

En y voyant plus clair, cela suscitera plus de réponses.

A+
 
Re : un changement à faire dans le code

Bonjour le fil 🙂,
Hippolite n'as pas tort, les balises CODE améliore la lisibilité 🙄...
Je sais pas pourquoi, mais ce code me dit quelque chose 😛...
Vois si le fichier en retour te convient, il est juste interdit de s'appeller "Maisons" 😉...
Bonne après-midi 😎
 

Pièces jointes

Re : un changement à faire dans le code

JNP merci et effectivement ce code venait bien de vous, mais j'ai un souci, je n'ai pas toutes les lignes ! cela s'arrête à la ligne 93, alors que j'ai 15872 lignes.

J'ai plusieurs nom de rue et apparemment cela s'arrête à la deuxième. Alors que dans le fichiers que vous m'avez envoyé il prend bien toutes les rues !
 
Dernière édition:
Re : un changement à faire dans le code

Bonjour Sylvie64, le fil,

En attendant la prochaine migration des cigognes 😉 tu peux peut-être déjà vérifier si les noms de rues sont chaque fois en colonne C !?
 
Dernière édition:
Re : un changement à faire dans le code

Re 🙂,
En attendant la prochaine migration des cigognes 😉 tu peux peut-être déjà vérifier si les noms de rues sont chaque fois en colonne C !?
La cigogne est repassée 😛...

Mon code s'arrrête quand il tombe sur une cellule de la colonne C qui est vide sans être fusionnée 🙄...
Pour tricher, tu peux remplacer
Code:
If .Cells(I, 3) = "" And .Cells(I, 3).MergeArea.Count = 1 Then Exit Sub
par
Code:
If I > 16000 Then Exit Sub
Bonne soirée 😎
 
Re : un changement à faire dans les balises de code

Merci Modeste, toutes les rues sont bien en C

JNP j'ai changé le code et maintenant cela s'arrête à la ligne 1923, la case C est bien fusionnée avec les cases B,D,E,F,G et H

J'ai l'Erreur d'exécution '13": incompatibilité de type, donc je fais Débogage et cette ligne apparait en jaune :
N°Famille = Replace(.Cells(I, 2), "Famille N°", "") * 1
 
Re : un changement à faire dans les balises de code

Re 🙂,
JNP j'ai changé le code et maintenant cela s'arrête à la ligne 1923, la case C est bien fusionnée avec les cases B,D,E,F,G et H

J'ai l'Erreur d'exécution '13": incompatibilité de type, donc je fais Débogage et cette ligne apparait en jaune :
N°Famille = Replace(.Cells(I, 2), "Famille N°", "") * 1
de 93 à 1923, on a bien progressé 😛...
Pour que ça beugue dans cette ligne, c'est que Famille N°XX" n'est pas saisi correctement 🙄...
Si c'est juste un problème d'espace avant, au milieu ou à la fin, tu peux essayer
Code:
N°Famille = Replace(Replace(.Cells(I, 2), " ", ""), "FamilleN°", "") * 1
Bon courage 😎
 
Re : un changement à faire dans les balises de code

Oui ça progresse, mais j'y suis encore loin !😡
Toujours Débogage et le code se mets en jaune

Y a t-il possibilité de voir pour les espaces ? j'ai essayé mais cela ne fonctionne car j'ai des cases fusionnées.

Un grand merci de te pencher sur mon problème😱
 
Dernière édition:
Re : un changement à faire dans les balises de code

Re 🙂,
Vu que ce sont des cellules fusionnées, le "Famille N°XX" se situe en B 🙄...
Le code plante parce qu'apès avoir retirer "Famille N°", le XX qui reste n'est pas un nombre... D'où mon hypothèse d'espace...
Après, on peut traiter ça en String (je dis pas ça pour toi 😛...), mais ton fichier avait des N° de familles en nombres comme résultat 😉...
Tu peux modifier
Code:
Dim Adresse As String, N°Famille As String
et
Code:
N°Famille = Replace(.Cells(I, 2), "FamilleN°", "")
mais je trouverais préférable de modifier la saisie de la ligne pour qu'elle soit correcte 🙄...
Bon courage 😎
 
Re : un changement à faire dans les balises de code

EXCELLENT !!!! merci d'avoir trouvé la solution.

Une autre question si je peux me le permettre, J'ai une colonne en B (avec lettre et chiffre) et j'aimerai mettre les doublons en colonne E, quel code puis je mettre.

Merci pour tout
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
471
Réponses
4
Affichages
352
Réponses
8
Affichages
242
Réponses
2
Affichages
233
Réponses
8
Affichages
553
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
755
Retour