'-------- Chargement Combo CP --------
For J = 1 To NoDept.Count
Me.cboCP.AddItem Format(NoDept(J), "00000") 'ligne modifiée
NoValeur = NoValeur + 1
Next J
Nb = Sheets("Feuil2").Cells(65536, Cp).End(xlUp).Row
Label10.Caption = "Nombre de communes Q = " & Nb - 2
[A1].Select
Private Sub cboCom_Click()
Dim Choix$, Cell As Variant
Dim Cp%
x = Me.cboCom.Value
Cp = Int(Label4.Caption)
'MsgBox choix
Me.lstCP.Clear
Sheets("Feuil2").Activate
'----------- Plage de recherche ----------
Sheets("Feuil2").Range(Cells(3, Cp + 1), Cells(65536, Cp + 1).End(xlUp)).Select
For Each Cell In Selection
If Cell.Text = Choix Then Me.lstCP.AddItem Cell.Offset(0, -1).Text 'ligne modifiée
' MsgBox Cell
Next Cell
[A1].Select
End Sub
Sub ChargementCombo()
Dim Bib As Worksheet
Dim NbBibli%, Y%
Dim Liste$
Set Bib = Sheets("Feuil2")
'------ Chargement Combo et Comptage des Bibli --------
For Y = 1 To 250 Step 2
If Bib.Cells(1, Y).Value <> "" Then
NbBibli = NbBibli + 1
Liste = Bib.Cells(1, Y).Text 'ligne modifiée
ComboBox1.AddItem (Liste)
End If
Next Y
'------------------------------------------------------
Label9.Caption = "Nombre de Dépt (Q = " & NbBibli - 1 & ")" & " +1 N.C"
End Sub
With ComboBox1
Rubrique = CDbl(ComboBox1.List(.ListIndex, 0)) 'ligne modifiée
End With
il manque la variable pour X ce n'est que mon avisSub cboCom_Click
Je n'ai pas écrit le code, juste utilisé la propriété Text à la place de Value par rapport au code initial, ce qui permet de récupérer le texte réellement écrit dans la cellule (01000) plutôt que la valeur retournée (1000).bonjour david84
dans le code que tu mis pour il manque la variable pour X ce n'est que mon avis
Pascal
Comme Jack l'a fait, j'arrive bien à supprimer le lien hypertexte d'une commune, mais comment
le faire pour 37000 communes d'un coup ?
ActiveSheet.Hyperlinks.Delete
Tu as différentes possibilités à ta disposition lorsque tu dois trier un Array (tableau VBA), et notamment :il me reste l'épineux problème du tri sur le CP.
Sub Init1()
Dim NoDept As New Collection
Dim A()
Dim i%, J%, NoValeur%
Dim Swap1$, Swap2$
Dim Cp%, Nb%
Dim AL As Object
Cp = Int(Label4.Caption)
'CP = 13
Application.ScreenUpdating = False
Sheets("Feuil2").Activate
On Error Resume Next
Range(Cells(3, Cp), Cells(65536, Cp).End(xlUp)).Select
A = Selection.Value
For i = 1 To UBound(A, 1)
NoDept.Add A(i, 1), CStr(A(i, 1))
Next i
'----------- Tri Communes ------------
For i = 1 To NoDept.Count - 1
For J = i + 1 To NoDept.Count
If NoDept(i) > NoDept(J) Then
Swap1 = NoDept(i)
Swap2 = NoDept(J)
NoDept.Add Swap1, before:=J
NoDept.Add Swap2, before:=i
NoDept.Remove i + 1
NoDept.Remove J + 1
End If
Next J
Next i
' partie modifiée
'-------- Chargement Combo CP --------
Set AL = CreateObject("System.Collections.ArrayList")
'chargement des CP formatés dans l'objet ArrayList
For J = 1 To NoDept.Count
AL.Add Format(NoDept(J), "00000") 'format des CP
Next J
AL.Sort 'tri des CP
'on charge les CP triés dans le ComboBox des CP
For J = 0 To AL.Count
Me.cboCP.AddItem AL(J)
NoValeur = NoValeur + 1 'cette ligne existait donc je l'ai laissée mais est-elle vraiment utile ?
Next J
'fin de la partie modifiée
Nb = Sheets("Feuil2").Cells(65536, Cp).End(xlUp).Row
Label10.Caption = "Nombre de communes Q = " & Nb - 2
[A1].Select
End Sub
NoValeur = NoValeur + 1
For J = 0 To AL.Count
Me.cboCP.AddItem AL(J)
NoValeur = NoValeur + 1 'cette ligne existait donc je l'ai laissée mais est-elle vraiment utile ?
Next J
cboCP.List = AL.toarray