XL 2013 renvoyer valeur sous condition

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

  • Nouveau Feuille de calcul Microsoft Excel.xlsm
    14.6 KB · Affichages: 5
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

Jacky67

XLDnaute Barbatruc
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
 

Gégé-45550

XLDnaute Accro
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,
 

CGU2022.

XLDnaute Junior
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
 

Gégé-45550

XLDnaute Accro
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
 

Discussions similaires

Réponses
49
Affichages
1 K

Statistiques des forums

Discussions
315 091
Messages
2 116 109
Membres
112 662
dernier inscrit
lou75