Sélection en VBA
Résolu
CHARLYJACK
Messages postés
345
Date d'inscription
Statut
Membre
Dernière intervention
-
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Et oui je continue à m'interesser au langage VBA,
j'ai même acheté un livre.
je recherche également des codes sur internet.
La seule difficulté c'est d'appliquer les codes.
par exemple j'ai trouvé les 3 codes suivants afin d'obtenir la somme des chiffres rouges ou des cellules jaunes.
Sur une feuille ça fonctionne, par contre j'ai des difficultés dès que
j'essaie de sélectionner le classeur composé d'un nombre variable de feuilles.
voici les 3 codes que j'ai trouvés:
Calcule la somme des cellules D2 de toutes les feuilles
Sub CalculSum()
Application.ScreenUpdating = False
For Each feuille In ActiveWorkbook.Sheets
feuille.Activate
tot = [D2]
result = result + tot
Next
MsgBox result
End Sub
Fait la somme des chiffres écrits en rouge de la sélection
Sub sommeCouleurRougeText()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
If Cellule.Font.ColorIndex = 3 Then
'3 rouge et 1 pour le noir
'If Cellule.Interior.ColorIndex = 3 Then (pour la couleur de fond)
If IsNumeric(Cellule) Then total = total + Cellule.Value
End If
Next
MsgBox total
Range("G12") = total
End Sub
Compte le nombre de cellules colorées en rouge de la sélection
Sub NombredeCellRouge()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
If Cellule.Interior.ColorIndex = 3 Then 'rouge
total = total + Cellule.Count
End If
Next
MsgBox "Il y a " & total & " Cellules rouges"
Range("A1") = total
End Sub
merci à vous
à plus
David
Et oui je continue à m'interesser au langage VBA,
j'ai même acheté un livre.
je recherche également des codes sur internet.
La seule difficulté c'est d'appliquer les codes.
par exemple j'ai trouvé les 3 codes suivants afin d'obtenir la somme des chiffres rouges ou des cellules jaunes.
Sur une feuille ça fonctionne, par contre j'ai des difficultés dès que
j'essaie de sélectionner le classeur composé d'un nombre variable de feuilles.
voici les 3 codes que j'ai trouvés:
Calcule la somme des cellules D2 de toutes les feuilles
Sub CalculSum()
Application.ScreenUpdating = False
For Each feuille In ActiveWorkbook.Sheets
feuille.Activate
tot = [D2]
result = result + tot
Next
MsgBox result
End Sub
Fait la somme des chiffres écrits en rouge de la sélection
Sub sommeCouleurRougeText()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
If Cellule.Font.ColorIndex = 3 Then
'3 rouge et 1 pour le noir
'If Cellule.Interior.ColorIndex = 3 Then (pour la couleur de fond)
If IsNumeric(Cellule) Then total = total + Cellule.Value
End If
Next
MsgBox total
Range("G12") = total
End Sub
Compte le nombre de cellules colorées en rouge de la sélection
Sub NombredeCellRouge()
Dim Cellule As Range
Dim total As Variant
For Each Cellule In Selection
If Cellule.Interior.ColorIndex = 3 Then 'rouge
total = total + Cellule.Count
End If
Next
MsgBox "Il y a " & total & " Cellules rouges"
Range("A1") = total
End Sub
merci à vous
à plus
David
A voir également:
- Sélection en VBA
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
2 réponses
Bonjour,
Non testé ! :
Info
Non testé ! :
Option Explicit
Sub CalculSum()
Dim Result As Long, Total As Variant
Application.ScreenUpdating = False
For Each feuille In ActiveWorkbook.Sheets
feuille.Activate
tot = [D2]
Result = Result + tot
' ->>>>> Définir la sélection
Range("A2:C5").Select
' Ajout appel de fonction
Total = SommeCouleurRougeText(Selection)
Range("G12").Value = Total
Total = NombredeCellRouge(Selection)
MsgBox "Il y a " & Total & " Cellules rouges"
Range("A1").Value = Total
Next
MsgBox Result
End Sub
'
'Fait la somme des chiffres écrits en rouge de la sélection
Function SommeCouleurRougeText(ByVal Cible As Range) As Variant
Dim Cellule As Range
Dim Total As Variant
For Each Cellule In Cible
'3 rouge et 1 pour le noir
If Cellule.Font.ColorIndex = 3 Then
If IsNumeric(Cellule) Then Total = Total + Cellule.Value
End If
Next
SommeCouleurRougeText = Total
End Function
'
'Compte le nombre de cellules colorées en rouge de la sélection
Function NombredeCellRouge(ByVal Cible As Range) As Variant
Dim Cellule As Range
Dim Total As Variant
For Each Cellule In Cible
If Cellule.Interior.ColorIndex = 3 Then 'rouge
Total = Total + Cellule.Count
End If
Next
NombredeCellRouge = Total
End Function
'
Info