Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.







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,
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,
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,
à 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
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:
 

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…