Macro pour copier dans une autre feuille

  • Initiateur de la discussion Initiateur de la discussion dblu
  • Date de début Date de début

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 !

dblu

XLDnaute Nouveau
Bonjour le forum,

Je suis bloqué dans la création d'une macro (voir fichier en attaché). J'aimerais bien que cette macro copier une ligne du tableau de la feuil1 si au moins une des trois valeurs est égale ou supérieure à 5 et ce dans la feuil2 de ce même classeur.
Si jusqu'à présent mon raisonnement me paraît bon, il manque l'étape qui traiterait le cas où il faudrait écrire plusieurs lignes dans le nouveau tableau de la feuil2. C'est la conceptualisation de cette étape qui me pose problème. De plus, je suppose qu'au niveau syntaxe il y a aussi des erreurs...

S'il y a plus simple comme méthode n'hésitez pas à m'éclairer!
 

Pièces jointes

Re : Macro pour copier dans une autre feuille

Bonjour,

voici une macro:

Code:
Sub calc()
    Dim ligne As Long
    With Sheets("Feuil1")
        For ligne = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            If .Range("B" & ligne) >= 5 Or .Range("C" & ligne) >= 5 Or .Range("C" & ligne) >= 5 Then
                .Range("A" & ligne & ":D" & ligne).Copy _
                        Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 4)
            End If
        Next ligne
    End With
End Sub
A+
 
Re : Macro pour copier dans une autre feuille

Salut, en voici une autre 😉

Sub calc()

Dim i, j As Integer
i = 2 'variable i : numéro de ligne feuille 1
j = 2
With Feuil1

For i = 2 To .[A65536].End(xlUp).Row 'derniere ligne de col A

If (.Range("B" & i).Value > 5) = True Or (.Range("C" & i).Value >= 5) = True Or (.Range("D" & i).Value >= 5) = True Then
Feuil2.Range("A" & j & "😀" & j).Value = .Range("A" & i & "😀" & i).Value
j = j + 1
End If

Next
End With

End Sub

Cordialement,

Pierre
 
Re : Macro pour copier dans une autre feuille

Bonjour dblu, les participants,

Pour info (et pour le fun), un autre style de boucle :

Code:
Sub calc()

Dim j As Integer
j = 2

With Feuil1
    For Each lg In .UsedRange.Rows 'pour chaque ligne de la colonne A
    If Application.Max(.Range("A" & lg.Row).EntireRow) >= 5 Then 'si la valeur maxi de la ligne est égale ou supérieure à 5
      Feuil2.Range("A" & j & ":D" & j).Value = .Range("A" & lg.Row & ":D" & lg.Row).Value
      j = j + 1
    End If
  Next
End With

End Sub

Cordialement à tous.
 
- 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

  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
347
Retour