Copie automatique de cellules non vides vba
bee
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche à copier automatiquement toutes les données non vides d'une base de données dans une nouvelle feuille.
Pour ce faire, j'ai fait une macro vba :
Sub Filtre()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("Actions correctives-préventives").Activate
Col = "A"
NumLig = 0
With Sheets("Données actions")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 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
Mais malheureusement ca ne fonctionne que pour la première ligne...les autres ne sont pas copiées....
pouvez vous m'aider?
merci
<config>Windows XP /
Je cherche à copier automatiquement toutes les données non vides d'une base de données dans une nouvelle feuille.
Pour ce faire, j'ai fait une macro vba :
Sub Filtre()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("Actions correctives-préventives").Activate
Col = "A"
NumLig = 0
With Sheets("Données actions")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 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
Mais malheureusement ca ne fonctionne que pour la première ligne...les autres ne sont pas copiées....
pouvez vous m'aider?
merci
<config>Windows XP /
A voir également:
- Copie automatique de cellules non vides vba
- Logiciel de sauvegarde automatique gratuit - Guide
- Réponse automatique thunderbird - Guide
- Copie cachée - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Super copie - Télécharger - Gestion de fichiers
1 réponse
Bonjour,
Tu pourrais te dispenser de boucle...en évitant la copie de lignes entières
le principe
Non testé
Tu pourrais te dispenser de boucle...en évitant la copie de lignes entières
le principe
Sub Filtre()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NbrCol As Byte
Dim Tampon
Col = "A"
With Sheets("Données actions")
NbrLig = .Cells(65536, Col).End(xlUp).Row
NbrCol = Range("iv1").End(xlToLeft).Column
Tampon = Range(Cells(1, Col), Cells(NbrLig, NbrCol))
End With
With Sheets("Actions correctives-préventives")
.Range("A1").Resize(NbrLig, NbrCol) = Tampon
.Range("A1:A" & NbrLig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.Activate
End With
End Sub
Non testé