jessymathault
Nouveau membre
Bonjour à tous,
Premièrement, je tiens à préciser que je n'ai aucune formation autre qu'un peu d'essai erreur sur vba...
Mon but est de réussir à isoler rapidement les lignes qui contiennent des éléments et de copier celles-ci sur une autre feuille de calcul. Dans mon classeur, je peux savoir directement si la ligne est vide en ne regardant que les valeurs de la colonne H. Si H est nulle (en fait elle vaut "", donc 0), alors la ligne est vide et elle n'est pas à copier. Mon code, ci-bas, fonctionne, mais il est beaucoup trop lent... J'aimerais donc bien que vous m'aidiez à l'optimiser.
À noter que copier seulement les colonnes A à M selon la valeur de la colonne H pourrait suffire.
Merci beaucoup de l'aide apportée!
Premièrement, je tiens à préciser que je n'ai aucune formation autre qu'un peu d'essai erreur sur vba...
Mon but est de réussir à isoler rapidement les lignes qui contiennent des éléments et de copier celles-ci sur une autre feuille de calcul. Dans mon classeur, je peux savoir directement si la ligne est vide en ne regardant que les valeurs de la colonne H. Si H est nulle (en fait elle vaut "", donc 0), alors la ligne est vide et elle n'est pas à copier. Mon code, ci-bas, fonctionne, mais il est beaucoup trop lent... J'aimerais donc bien que vous m'aidiez à l'optimiser.
À noter que copier seulement les colonnes A à M selon la valeur de la colonne H pourrait suffire.
Code:
Sub Bouton1_Clic()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("COPIER ICI LES CELLULES NONVIDE").Activate ' feuille de destination
Col = "H" ' colonne de la donnée non vide à tester
NumLig = 2
With Sheets("Produit à copier") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 3 To NbrLig
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig, 1).Select
ActiveSheet.Paste
End If
Next
End With
End Sub
Merci beaucoup de l'aide apportée!