Recherche d'une valeur de cellule dans le nom des feuilles
Résolu
adamfred
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
adamfred Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
adamfred Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Recherche d'une valeur de cellule dans le nom des feuilles
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Aller à la ligne dans une cellule excel - Guide
- Bruler des feuilles de laurier - Guide
- Comment faire une recherche à partir d'une photo - Guide
4 réponses
Bonjour,
Voici un exemple de code pour débutant :
Essaies de l'adapter à ton besoin, tu pourras ensuite poursuivre cette discussion en mettant ton fichier sur https://www.cjoint.com/
Tutoriel : Utiliser ci-joint
Voici un exemple de code pour débutant :
Option Explicit Option Private Module Public Sub adamfred() Dim wsh As Worksheet Dim rng As Range Dim cel As Range Dim txt As String 'Analyser chaque cellule de la plage A4:A21 For Each cel In ThisWorkbook.Worksheets("Recap Fr").Range("A4:A21").Cells 'Pour chaque feuille du classeur For Each wsh In ThisWorkbook.Worksheets 'Comparer la valeur de la cellule avec le nom de la feuille If cel.Value = wsh.Name Then 'si ça correspond, mettre en place les formules : '1° formule txt = "=""MaFormuleN°1""" wsh.Range("B4").FormulaLocal = txt '2° formule txt = "=GAUCHE(B4;11) & ""2""" wsh.Range("C4").FormulaLocal = txt 'Etc.. End If Next wsh Next cel End Sub
Essaies de l'adapter à ton besoin, tu pourras ensuite poursuivre cette discussion en mettant ton fichier sur https://www.cjoint.com/
Tutoriel : Utiliser ci-joint
Patrice33740
Messages postés
8561
Date d'inscription
Statut
Membre
Dernière intervention
1 780
PS : tu noteras qu'il est inutile d'activer la feuille pour y mettre en place une formule.
je viens de terminer une autre façon de faire sauf qu'il y'a un boucle infini.
Sub ParcoursdesRecap()
Dim myRangeRech, myRangeR As Range
Dim myLastRow, LastRowMp
Dim myLast As Variant
Dim i, j As Integer
Dim mySheet As Worksheets
Dim Nom As String
Dim mySheetRech As Range
Dim CellRech As Range
Dim MtPayé As Double
'DernLigne = Range("A" & Rows.Count).End(xlUp).Row
'DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Worksheets("Recap Fr").Select
myLastRow = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
' nbre de ligne
myLastRow = myLastRow - 1
Set myRangeRech = Range("A4:A" & myLastRow)
For Each Cell In myRangeRech
Worksheets("Recap Fr").Select
For i = 4 To myLastRow
' la recherche des feuilles de calcul commence à la feuille(9)
For j = 9 To Worksheets.Count
Worksheets("Recap Fr").Select
Nom = Range("A" & i).Value
If Nom = Worksheets(j).Name Then
Worksheets(j).Select
Range("D4").Select
If Range("D4") = "" Then
LastRowMp = 0
Else
LastRowMp = Columns("D:D").Find("*", Range("D1"), , , xlByRows, xlPrevious).Row
'somme des colonnes
Worksheets("Recap Fr").Range("B" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("D4:D" & LastRowMp))
Worksheets("Recap Fr").Range("C" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("E4:E" & LastRowMp))
Worksheets("Recap Fr").Range("D" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("F4:F" & LastRowMp))
Worksheets("Recap Fr").Range("F" & i).FormulaR1C1 = LastRowMp - 3
End If
End If
Next j
Next i
Next
End Sub
Certes, il est chaotique mais il semble fonctionner, mais ta solution est plus limpide.
j'y joint le fichier
Merci
Sub ParcoursdesRecap()
Dim myRangeRech, myRangeR As Range
Dim myLastRow, LastRowMp
Dim myLast As Variant
Dim i, j As Integer
Dim mySheet As Worksheets
Dim Nom As String
Dim mySheetRech As Range
Dim CellRech As Range
Dim MtPayé As Double
'DernLigne = Range("A" & Rows.Count).End(xlUp).Row
'DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Worksheets("Recap Fr").Select
myLastRow = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
' nbre de ligne
myLastRow = myLastRow - 1
Set myRangeRech = Range("A4:A" & myLastRow)
For Each Cell In myRangeRech
Worksheets("Recap Fr").Select
For i = 4 To myLastRow
' la recherche des feuilles de calcul commence à la feuille(9)
For j = 9 To Worksheets.Count
Worksheets("Recap Fr").Select
Nom = Range("A" & i).Value
If Nom = Worksheets(j).Name Then
Worksheets(j).Select
Range("D4").Select
If Range("D4") = "" Then
LastRowMp = 0
Else
LastRowMp = Columns("D:D").Find("*", Range("D1"), , , xlByRows, xlPrevious).Row
'somme des colonnes
Worksheets("Recap Fr").Range("B" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("D4:D" & LastRowMp))
Worksheets("Recap Fr").Range("C" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("E4:E" & LastRowMp))
Worksheets("Recap Fr").Range("D" & i).FormulaR1C1 = Application.WorksheetFunction.Sum(Range("F4:F" & LastRowMp))
Worksheets("Recap Fr").Range("F" & i).FormulaR1C1 = LastRowMp - 3
End If
End If
Next j
Next i
Next
End Sub
Certes, il est chaotique mais il semble fonctionner, mais ta solution est plus limpide.
j'y joint le fichier
Merci