Récuperer le contenu de cellules selon critère

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 !

Michel68000

XLDnaute Junior
Bonjour,
Je flanche sur un problème certainement trop simple pour certains, mais bon.
Je cherche à récuperer le contenu de deux cellules d'une ligne si le contenu de la cellule H de la meme ligne est positif. Dans ce cas je voudrais qu'excel me copie sur une autre feuille le contenu des cellules A et B.
De plus il faudrait qu'excel passe en revue toutes les lignes de ma première feuille.
J'espère avoir été clair dans mon explication et merci d'avance pour votre aide.
 
Re : Récuperer le contenu de cellules selon critère

Bonjour Michel68000 🙂,
Quelques légères ambiguïtés dans ta question 🙄...
Si tu veux uniquement récupérer les valeurs en conservant la mise en forme de la feuille 2
Code:
Sub Test()
Dim I As Integer, J As Integer
I = 1
J = 1
Sheets("Feuil2").Cells.ClearContents
While Sheets("Feuil1").Range("A" & I) <> ""
If Sheets("Feuil1").Range("H" & I) > 0 Then
Sheets("Feuil2").Range("A" & J) = Sheets("Feuil1").Range("A" & I)
Sheets("Feuil2").Range("B" & J) = Sheets("Feuil1").Range("B" & I)
I = I + 1
J = J + 1
Else
I = I + 1
End If
Wend
End Sub
si par contre, tu veut copier les cellules A et B avec la mise en forme
Code:
Sub Test2()
Dim I As Integer, J As Integer
I = 1
J = 1
Sheets("Feuil2").Cells.Clear
While Sheets("Feuil1").Range("A" & I) <> ""
If Sheets("Feuil1").Range("H" & I) > 0 Then
Sheets("Feuil1").Range("A" & J & ":B" & J).Copy Sheets("Feuil2").Range("A" & J)
I = I + 1
J = J + 1
Else
I = I + 1
End If
Wend
End Sub
attention, dans les 2 cas, j'efface soit le contenu de toutes les cellules de la feuille 2, soit toutes les cellules, mise en forme comprise.
Si tu veux restreindre aux colonnes A & B, il faut utiliser respectivement
Code:
Sheets("Feuil2").Cells.Range("A:B").ClearContents
Sheets("Feuil2").Cells.Range("A:B").Clear
Si tu as des entêtes, I détermine la première ligne de la feuille 1 à traiter, et J la première ligne de la feuille 2 pour recopier. Donc à adapter
Code:
I = 2
J = 4
par exemple.
Tu as mis "positif" donc j'ai mis
Code:
If Sheets("Feuil1").Range("H" & I) > 0 Then
si c'est "positif ou nul"
Code:
If Sheets("Feuil1").Range("H" & I) >= 0 Then
Bonne journée 😎
 
- 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

Retour