XL 2013 renvoyer valeur sous condition

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 !

CGU2022.

XLDnaute Junior
Bonjour à toutes et à tous.

Je reviens sur un problème que je n'ai pas réussi à résoudre.
j'ai ce code qui fonctionne avec une cellule :
Si E4=C4 affiche valeur B4 (principe)
Je souhaite que cette formule soit appliquée à toute la plage (E4:K10)

pouvez vous m'aiguiller, merci.


1702977997841.png





Sub MaMacro()
Dim feuille As Worksheet
Dim G1 As Variant
Dim C4 As Variant
Dim B4 As Variant

' Spécifiez le nom de la feuille de calcul
Set feuille = ThisWorkbook.Sheets("Feuil1")

' Spécifiez les cellules à comparer
E1 = feuille.Range("E1").Value
C4 = feuille.Range("C4").Value
B4 = feuille.Range("B4").Value

' Appliquez la logique de la formule Excel
If E1 = C4 Then
feuille.Range("E4").Value = B4
Else
feuille.Range("E4").Value = " " 'si possible ne pas mettre de valeur si vide

End If
End Sub
 

Pièces jointes

Solution
Bonjour à toutes et à tous.

Je reviens sur un problème que je n'ai pas réussi à résoudre.
j'ai ce code qui fonctionne avec une cellule :
Si E4=C4 affiche valeur B4 (principe)
Je souhaite que cette formule soit appliquée à toute la plage (E4:K10)

pouvez vous m'aiguiller, merci.


Regarde la pièce jointe 1186603
Bonjour,
Comme ceci peut-être
VB:
Sub testjj()
Dim C As Range, D As Range
For Each C In Range("c4:c" & Cells(Rows.Count, "b").End(xlUp).Row)
    For Each D In Range("e1", Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column))
        If C = D Then Cells(C.Row, D.Column) = C.Offset(, -1)
    Next
Next
End Sub
Bonjour à toutes et à tous.

Je reviens sur un problème que je n'ai pas réussi à résoudre.
j'ai ce code qui fonctionne avec une cellule :
Si E4=C4 affiche valeur B4 (principe)
Je souhaite que cette formule soit appliquée à toute la plage (E4:K10)

pouvez vous m'aiguiller, merci.


Regarde la pièce jointe 1186603
Bonjour,
Comme ceci peut-être
VB:
Sub testjj()
Dim C As Range, D As Range
For Each C In Range("c4:c" & Cells(Rows.Count, "b").End(xlUp).Row)
    For Each D In Range("e1", Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column))
        If C = D Then Cells(C.Row, D.Column) = C.Offset(, -1)
    Next
Next
End Sub
 
Bonjour à toutes et à tous.

Je reviens sur un problème que je n'ai pas réussi à résoudre.
j'ai ce code qui fonctionne avec une cellule :
Si E4=C4 affiche valeur B4 (principe)
Je souhaite que cette formule soit appliquée à toute la plage (E4:K10)

pouvez vous m'aiguiller, merci.


Regarde la pièce jointe 1186603




Sub MaMacro()
Dim feuille As Worksheet
Dim G1 As Variant
Dim C4 As Variant
Dim B4 As Variant

' Spécifiez le nom de la feuille de calcul
Set feuille = ThisWorkbook.Sheets("Feuil1")

' Spécifiez les cellules à comparer
E1 = feuille.Range("E1").Value
C4 = feuille.Range("C4").Value
B4 = feuille.Range("B4").Value

' Appliquez la logique de la formule Excel
If E1 = C4 Then
feuille.Range("E4").Value = B4
Else
feuille.Range("E4").Value = " " 'si possible ne pas mettre de valeur si vide

End If
End Sub
Bonjour,
à tester :
VB:
Sub MaMacro()
Dim feuille As Worksheet
Dim i,j

' Spécifiez le nom de la feuille de calcul
Set feuille = ThisWorkbook.Sheets("Feuil1")

' Appliquez la logique de la formule Excel
For i= 4 to 10
    for j= 5 to 11
        if feuille.cells(1,j)=feuille.cells(i,3) then feuille.cells(i,j)=feuille.cells(i,2) else feuille(i,j)=""
    next j
next i
End Sub
Cordialement,
 
Bonjour,
à tester :
VB:
Sub MaMacro()
Dim feuille As Worksheet
Dim i,j

' Spécifiez le nom de la feuille de calcul
Set feuille = ThisWorkbook.Sheets("Feuil1")

' Appliquez la logique de la formule Excel
For i= 4 to 10
    for j= 5 to 11
        if feuille.cells(1,j)=feuille.cells(i,3) then feuille.cells(i,j)=feuille.cells(i,2) else feuille(i,j)=""
    next j
next i
End Sub
Cordialement,
Merci gégé 45550 pour ton retour,
Je vais regarder ton code avec plus d'attention plus tard...
mais le code reste que sur la première cellule et j ai ce message:
1702999102572.png
 
Merci gégé 45550 pour ton retour,
Je vais regarder ton code avec plus d'attention plus tard...
mais le code reste que sur la première cellule et j ai ce message:
Regarde la pièce jointe 1186656
OUPS ... un oubli !
Le bon code
VB:
Sub MaMacro()
Dim feuille As Worksheet
Dim i, j

' Spécifiez le nom de la feuille de calcul
Set feuille = ThisWorkbook.Sheets("Feuil1")

' Appliquez la logique de la formule Excel
For i = 4 To 10
    For j = 5 To 11
        If feuille.Cells(1, j) = feuille.Cells(i, 3) Then feuille.Cells(i, j) = feuille.Cells(i, 2) Else feuille.Cells(i, j) = ""
    Next j
Next i
End Sub
 
- 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
11
Affichages
146
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
14
Affichages
371
Retour