Pbs De sélection dans une selection

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 !

newpixi

XLDnaute Junior
Bonjour le forum,

Je suis à nouveau bloqué sur mon projet VBA.Je cherche en effet à faire une sélection dans une sélection.. 😕

Voila ce que je cherche à faire :

1°) Sélectionner les colonnes une par une à partir d'un code
(en rouge dans le code suivant)

Code:
Sub rasta()
Dim n As Integer
Dim ValMax(1 To 5) As Single
Dim ValMin(1 To 5) As Single


[COLOR="Red"]   For n = 3 To 5
   ActiveSheet.Columns(n).Select[/COLOR]

   
   Selection.Font.Bold = False
   Selection.Interior.ColorIndex = xlNone
   
         For i = LBound(ValMax) To UBound(ValMax)
                ValMax(i) = Application.WorksheetFunction.Large(Selection, i)
                Selection.Find(ValMax(i), , xlValues).Interior.Color = vbGreen
                ValMin(i) = Application.WorksheetFunction.Small(Selection, i)
                Selection.Find(ValMin(i), , xlValues).Interior.Color = vbRed
         Next i
         
     Next n
End Sub

2°) Sélectionner trois plages distinctes dans la colonne sélectionnée.

C'est à dire que dans ma colonne (i, valeur de la boucle), il me faut sélectionner la plage allant de la ligne 10 à 20, puis une autre plage de la ligne 20 à 30, et enfin une plage de 30 à 40.

Il faudrait que cette sélection soit "sélectionnée" automatiquement pour chaque nouvelle colonne sélectionnée par la boucle surlignée en rouge dans le code précédent.

J'espère être clair...

Antoine😕😕
 
Re : Pbs De sélection dans une selection

Bonjour Skoobi,

Merci de ton aide, c'est exactement ce que je voulais. Pour infos, voici le code fini :

Code:
For n = 3 To 7
   Range(Cells(1, n), Cells(12, n)).Name = "plage1"
   Range(Cells(14, n), Cells(22, n)).Name = "plage2"
   
   Set bigrange = Application.Union(Range("plage1"), Range("plage2"))
   
   bigrange.Select

Bonne journée,

Antoine
 
Re : Pbs De sélection dans une selection

Re,

J'ai du mal analyser ton code Skoobi, (en rouge dans le code)

Code:
         For i = LBound(ValMax) To UBound(ValMax)
         
                ValMax(i) = Application.WorksheetFunction.Large(Selection, i)
                If Selection(1).[COLOR="Red"]NumberFormat = "General"[/COLOR] Then
                  Selection.Find(ValMax(i), , xlValues, lookat:=xlWhole).Interior.Color = vbGreen
                Else: Selection.Find(Format(ValMax(i), Selection(1).NumberFormat), , xlValues, lookat:=xlWhole).Interior.Color = vbGreen
                End If
                
                ValMin(i) = Application.WorksheetFunction.Small(Selection, i)
                If Selection(1).NumberFormat = "General" Then
                  Selection.Find(ValMin(i), , xlValues, lookat:=xlWhole).Interior.Color = vbRed
                Else: Selection.Find(Format(ValMin(i), Selection(1).NumberFormat), , xlValues, lookat:=xlWhole).Interior.Color = vbRed
                End If
         Next i

En effet, je veux utiliser ce code pour des cellules à format personnalisé, mais j'obtiens une erreur..

Je me doute bien que la condition "General" est fausse, mais alors pourquoi ne puis-je pas utiliser l'autre condition (qui marche pour des %)? Je ne sais pas quoi modifier... Je suis perdu

Modifs: Voici l'erreur si ca peut aider: "Variable objet ou variable bloc With non définie (erreur 91)"

Merci d'avance...
 
Dernière édition:
Re : Pbs De sélection dans une selection

Re bonjour,

en fait, la première condition
If Selection(1).NumberFormat = "General" Then
permet de voir si un format autre que le "standard" est utilisé. Si c'est le cas, c'est la deuxième partie qui sera appliqué (Else: ....)en récupérant le format se trouvant dans cette colonne: Format(ValMax(i), Selection(1).NumberFormat)

Mais sans garantie car je n'ai pas testé tous les formats existant, il y en a un paquet....
 
Re : Pbs De sélection dans une selection

Re,

tu peux récupérer le format de la cellule en faisant comme ceci:

dans VBE, Alt+G (ça ouvre la fenêtre d'execution)
tu sélectionnes une cellule pour laquelle tu veux connaître le format de cellule puis dans la fenêtre tu tappes:
Code:
?Activecell.NumberFormat
sans oublier le "?"
le résultat renvoyé tu le mais à la place de Selection(1).NumberFormat
 
Re : Pbs De sélection dans une selection

Salut Skoobi,

J'ai suivi tes conseils et j'arrive au code suivant (qui ne marche toujours pas....) :

Code:
Sub rasta()
Dim n As Integer
Dim plage1 As Range
Dim plage2 As Range
Dim plage_totale As Range
Dim ValMax(1 To 5) As Variant
Dim ValMin(1 To 5) As Variant

   'Selection de la plage de recherche
   'Range("c1:c52").Select
   
   For n = 8 To 8
   Range(Cells(21, n), Cells(37, n)).Name = "plage1"
   Range(Cells(39, n), Cells(79, n)).Name = "plage2"
   
   Set plage_totale = Application.Union(Range("plage1"), Range("plage2"))
   
  plage_totale.Select
   
   Selection.Font.Bold = False
   Selection.Interior.ColorIndex = xlwhite
   
         For i = LBound(ValMax) To UBound(ValMax)
         
                ValMax(i) = Application.WorksheetFunction.Large(Selection, i)
                [COLOR="Red"]If Selection(1).NumberFormat = "#,##0_);[Red](#,##0)" Then
                   Selection.Find(Format(ValMax(i), "#,##0_);[Red](#,##0)"), , xlValues, lookat:=xlWhole).Interior.Color = vbGreen[/COLOR]
                Else: Selection.Find(Format(ValMax(i), Selection(1).NumberFormat), , xlValues, lookat:=xlWhole).Interior.Color = vbGreen
                End If
                
                ValMin(i) = Application.WorksheetFunction.Small(Selection, i)
                If Selection(1).NumberFormat = "General" Then
                  Selection.Find(ValMin(i), , xlValues, lookat:=xlWhole).Interior.Color = vbRed
                Else: Selection.Find(Format(ValMin(i), Selection(1).NumberFormat), , xlValues, lookat:=xlWhole).Interior.Color = vbRed
                End If
         Next i
         
         
     Next n
End Sub

Je ne comprends ce qui marche pas, VBA comprend bien le format appliqué car il va a la première ligne de la condition. Mais après, il plante (erreur d'execution...)

Sur toute ma feuille je n'aurais que deux formats: le format indiqué dans le code, et un format pourcentage personnalisé.

J'ai vraiment du mal à progresser dans l'écriture du code.

Merci pour ton aide future,

Antoine
 
Re : Pbs De sélection dans une selection

Re,

si tu regarde bien dans le format de la cellule, tu verras qu'il y a le symbole monétaire qui n'est pas repris tel quel en voulant le récupéré dans VBA, je ne sais pas pourquoi ni comment résoudre celà, désolé 🙁
 
- 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
3
Affichages
582
Réponses
9
Affichages
581
Retour