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

[Résolu] Copier des lignes dans une autre feuille sous condition

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 !

Lone-wolf

XLDnaute Barbatruc
Bonjour le Forum,

J'aimerais faire un copier-coller de données dans une autre feuille, mais avec un écart de 33 lignes.
les lignes éffectives à copier sont de 32.

Feuil15 correspond à "Poids Autres Matériaux"

Code:
For i = 2 To Sheets("Liste Matériaux").Range("A65536").End(xlUp).Row Step 33
Feuil15.[A & i, :G & i].Copy Feuil29.[A & i]
Next i
Sheets("Poids Autres Matériaux").Range("A2:G33").ClearContents

Est-ce juste comme j'ai écrit?


A+ 😎
 
Dernière édition:
Re : Copier des lignes dans une autre feuille sous condition

Re

C'est presque ça Staple.

Maintenant comme dans la colonne B j'ai inscrit des numéros, dans la feuille2 la macro recopie les 32 premières données de la feuille 1. Il faudrais faire en sorte qu'elle copies les données suivantes (ex.: de ligne 34 à 65, de 66 à 97 etc.).

je te remet le fichier pour que tu voie.


A+ 😎
 

Pièces jointes

Re : Copier des lignes dans une autre feuille sous condition

Re

Oui par intermittence 😉

Présentement je suis en train de cuisiner un dessert pour ce soir.

Tu as essayé de t'en sortir seul en cherchant sur XLD et ailleurs sur le net?

Je reviens une fois le moule dans le four 😉
 
Re : Copier des lignes dans une autre feuille sous condition

Re

Lone-Wolf: T'exagères pas un peu des fois ... 🙄
Tu avais toutes les infos à disposition dans le fil 🙄
T'as de la chance que je préfère titiller Excel plutôt que regarder ce qui se passe dans mon four.
Code:
Sub test3()
Dim r As Range, i&
For i = 2 To Sheets(1).Range("A65536").End(xlUp).Row Step 32
Set r = Sheets(1).Cells(i, "A").Resize(32, 7)
'MsgBox r.Address 'pour test
If Application.CountBlank(r) = 0 Then
r.Copy Sheets(2).[a65536].End(xlUp)(2)
End If
Set r = Nothing
Next i
End Sub
 
Re : Copier des lignes dans une autre feuille sous condition

Re Staple,

désolé mais ce n'est toujours pas bon.

Je ne sais pas si ça pourrais marcher en incluant Find ou Offset:

Si prochaines cellules de la feuille 2 sont vides, sélectionne ligne dans la feuille1 égale à la ligne vide de la feuille2 et copie les lignes suivantes.


A+ 😎
 
Re : Copier des lignes dans une autre feuille sous condition

Re Staple,

j'ai mis les mains dans le cambouis, mais je n'ai fait que patoger. 😉

Ensuite j'ai écrit comme ceci:

Code:
Sub test()
Application.ScreenUpdating = False
For i = 2 To Sheets("Feuil2").Range("A65536").End(xlDown).Row + 1
Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & i & ":G" & i)
If i = 33 Then
Exit For
End If
'MsgBox
Next i

For i = 34 To Sheets("Feuil2").Range("A65536").End(xlDown).Row + 1
Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & i & ":G" & i)
If i = 65 Then
Exit For
End If
'MsgBox
Next i

For i = 66 To Sheets("Feuil2").Range("A65536").End(xlDown).Row + 1
Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & i & ":G" & i)
If i = 97 Then
Exit For
End If
'MsgBox
Next i
Exit Sub


For i = 98 To Sheets("Feuil2").Range("A65536").End(xlDown).Row + 1
Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & i & ":G" & i)
If i = 97 Then
Exit For
End If
'MsgBox
Next i
Exit Sub

Application.ScreenUpdating = True
End Sub

Le problème c'est que je doit à chaque fois coller un For Next dans la macro


A+ 😎
 
Re : [Résolu] Copier des lignes dans une autre feuille sous condition

Bonjour le Forum, Staple

Et pour ceux qui serait interéssez, voici le code pour afficher un message toutes les X lignes et copier dans une autre feuille. Ici c'est toutes les 32 lignes, mais vous pouvez modifiez celles-ci à votre aise.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim nb As Integer
'Pour éviter de compter aussi la cellule A1, on met la cellule à 0 _
en inscrivant -1 sur la ligne de fonction.

nb = Application.WorksheetFunction.CountA(Feuil1.Range("$A:$A")) - 1
[J1] = nb

For i = 1 To 100
If [J1] = 32 Then
MsgBox [J1] & " Heureux"
Feuil1.[A2:G65536].Copy Feuil2.[A2]     ' Je remercie Job75 pour cette ligne de code
Exit For
End If
If [J1] > 32 Then
[J1].Value = [J1].Value - 32
End If
Next i

End Sub

A+ 😎
 
Dernière édition:
Re : [Résolu] Copier des lignes dans une autre feuille sous condition

Bonsoir Wolfy

Tu vois quand tu mets les mains dans le cambouis, ça te réussit toujours 😉, même s'il y avait quatre mains dans le cambouis
(Salutations à job75 😉 )
 
- 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

Réponses
9
Affichages
884
Réponses
3
Affichages
879
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…