Copier Coller des lignes en VBA

  • Initiateur de la discussion Initiateur de la discussion Excel123
  • 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 !

E

Excel123

Guest
Bonjour à tous,

Je suis débutant en langage VBA,

Je n'arrive pas à faire ma macro pour copier coller une ligne vers un second onglet de mon classeur.

Voici ci-joint un fichier exemple avec mes conditions pour copier la ligne vers la feuil2 ou la feuil3



C'est tout bête, mais si quelqu'un pourrait m'aider ça serait vraiment sympa !
 

Pièces jointes

Re : Copier Coller des lignes en VBA

Re


Alors essaies cette macro
Code:
Sub a()
Dim c As Range
For Each c In Feuil1.Range("B2:B8")
If c And Not IsEmpty(c.Offset(, 1)) Then
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, 4).Value = c.Resize(, 4).Value
Else
Feuil3.Cells(Rows.Count, 1).End(3)(2).Resize(, 4).Value = c.Resize(, 4).Value
End If
Next
End Sub
 
Re : Copier Coller des lignes en VBA

super merci par contre j'ai essayé d'automatisé le nombre de lignes et de colonnes
Mais j'ai perdu le prénom en chemin 😕
Sub a()

Dim c As Range
Dim x, y

x = Worksheets("Feuil1").Range("A1").End(xlToRight).Column
y = Worksheets("Feuil1").Range("A1").End(xlDown).Row

For Each c In Feuil1.Range("B2:B" & y & "")

If c And Not IsEmpty(c.Offset(, 1)) Then
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, x).Value = c.Resize(, x).Value
Else
Feuil3.Cells(Rows.Count, 1).End(3)(2).Resize(, x).Value = c.Resize(, x).Value
End If
Next
End Sub
 
Re : Copier Coller des lignes en VBA

Bonjour Excel , Staple,

Bon une autre façon d'écrire , puisque j'ai écrit , je poste .

Code:
Sub Transfert()
Dim Ligne As Long
Dim LigneActuelle As Long
Dim Info As Variant
For Ligne = 2 To 10
  If Worksheets("Feuil1").Range("A" & Ligne) <> "" Then
   If Worksheets("Feuil1").Range("B" & Ligne) = "Vrai" And Worksheets("Feuil1").Range("C" & Ligne).Text <> "" Then
    'Si conditions ok alors
      LigneActuelle = Worksheets("Feuil2").Range("A20000").End(xlUp).Row + 1
      Info = Worksheets("Feuil1").Range("A" & Ligne & ":C" & Ligne)
      Worksheets("Feuil2").Range("A" & LigneActuelle & ":C" & LigneActuelle) = Info
     Else
    'Sinon
      LigneActuelle = Worksheets("Feuil3").Range("A20000").End(xlUp).Row + 1
      Info = Worksheets("Feuil1").Range("A" & Ligne & ":C" & Ligne)
      Worksheets("Feuil3").Range("A" & LigneActuelle & ":C" & LigneActuelle) = Info
   End If
  End If
 Next Ligne
End Sub

Cordialement
 
Re : Copier Coller des lignes en VBA

Re, Bonjour camarchepas

Pour retrouver les prénoms, et pour avoir le bon x 😉
Code:
Sub ab()
Dim c As Range
Dim x&, y&
With Worksheets("Feuil1")
    x = .Cells(1, Columns.Count).End(xlToLeft).Column
    y = .Cells(Rows.Count, 1).End(3).Row
    For Each c In .Range("B2:B" & y & "")
    If c And Not IsEmpty(c.Offset(, 1)) Then
    Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, x).Value = c.Offset(, -1).Resize(, x).Value
    Else
    Feuil3.Cells(Rows.Count, 1).End(3)(2).Resize(, x).Value = c.Offset(, -1).Resize(, x).Value
    End If
    Next
End With
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
493
Réponses
10
Affichages
425
Retour