Passage à la ligne suivante
teostid
Messages postés
2
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
J'ai créer un procédure qui me permet de colorer une cellule d'une ligne d emon choix:
Et ensuite j'ai créer une fonction qui trouve le minimum de la ligne:
Donc la procédure mets en couleur le minimum de la ligne.
Mais le problème c'est que j'arrive à faire faire ça de la ligne 2 à la ligne 11 par exemple.
Je pense qu'il faudrai mettre une boucle dans la fonction. Mais je n'y arrive
Donc si vous avez des idées, conseils, solutions je suis preneur merci bcp!!!
J'ai créer un procédure qui me permet de colorer une cellule d'une ligne d emon choix:
Sub tests_selection()
'Déclaration des plages
Dim cel
Dim plage As Range
'Selection des plages
Set plage = Range("D2:I11")
For Each cel In plage
If cel.Text = minimum Then
cel.Interior.ColorIndex = 7
End If
Next cel
End Sub
Et ensuite j'ai créer une fonction qui trouve le minimum de la ligne:
Public Function minimum() As Double
Dim myRange As Range
Set myRange = Worksheets("RC").Range("D2:I2")
minimum = Application.WorksheetFunction.Min(myRange)
End Function
Donc la procédure mets en couleur le minimum de la ligne.
Mais le problème c'est que j'arrive à faire faire ça de la ligne 2 à la ligne 11 par exemple.
Je pense qu'il faudrai mettre une boucle dans la fonction. Mais je n'y arrive
Donc si vous avez des idées, conseils, solutions je suis preneur merci bcp!!!
A voir également:
- Passage à la ligne suivante
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
- Passage qwerty azerty - Guide
- Mètre en ligne - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
1 réponse
Bonjour,
L'idéal est de boucler sur chaque ligne de ta plage et de disposer d'une fonction qui te renvoie, non pas la valeur du minimum de cette ligne, mais la colonne ou se situe cette valeur minimale.
Après, ce code est valable pour des petites plages.
Pour des plages plus importantes (milliers de lignes, centaine de colonne) il faudra en changer.
L'idéal est de boucler sur chaque ligne de ta plage et de disposer d'une fonction qui te renvoie, non pas la valeur du minimum de cette ligne, mais la colonne ou se situe cette valeur minimale.
Sub tests_selection()
'Déclaration des plages
Dim Ligne As Integer, col As Integer, ws As Worksheet
'Selection de la feuille
Set ws = Worksheets("Feuil1")
'remise en "blanc" du range
ws.Range("D2:I11").Interior.Pattern = xlNone
'boucle sur les lignes
For Ligne = 2 To 11
'calcule de la colonne contenant le minimum
'en fonction de :
'la feuille : ws
'la première colonne : "D"
'la dernière colonne : "I"
'le numéro de la ligne : Ligne
col = Colonne_Min(ws, "D", "I", Ligne)
'"coloriage"
Cells(Ligne, col).Interior.ColorIndex = 7
Next Ligne
End Sub
Function Colonne_Min(Feuil As Worksheet, FirstCol As String, LastCol As String, lig As Integer) As Integer
Dim Cel As Range, Colmini As Integer, mini As Double
'valeur par défaut (contenu de la première colonne)
mini = Feuil.Range(FirstCol & lig).Value
'colonne par défaut (1ère)
Colmini = Feuil.Range(FirstCol & lig).Column
'boucle sur les cellules de la ligne
For Each Cel In Feuil.Range(FirstCol & lig & ":" & LastCol & lig)
'si inférieur au minimum
If Cel.Value < mini Then
mini = Cel.Value 'stocke la valeur
Colmini = Cel.Column 'stocke la colonne
End If
Next Cel
'retourne le numéro de la colonne contenant le minimum
Colonne_Min = Colmini
End Function
Après, ce code est valable pour des petites plages.
Pour des plages plus importantes (milliers de lignes, centaine de colonne) il faudra en changer.
Quand je rendre votre code en remplaçant "feuil" par "RC", qui est le nom de ma feuille.
Il y a marqué ERREUR D'EXECUTION '13':
Incompatibilité de type
Vous savez à quoi cela est du?
Set ws = Worksheets("Feuil1")à remplacer par :
Set ws = Worksheets("RC")