Extraire lignes d'un tableau vba avec condition

Mxr17

XLDnaute Nouveau
Bonjour à tous,

J'essaie de pouvoir extraire des lignes (ou partie) sous certaines conditions avec le code suivant:

Sub test()
Dim a
Dim Montab
Dim Der As Integer
Dim i As Integer

Der = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

Montab = Sheets(1).Range("A1:C" & Der)

For i = 1 To Der

If Montab(i, 1) <> "111" And Montab(i, 2) = "" And Montab(i, 3) = "" Then
a = Montab(i, 1)

End If

Next i
'Sheets(2).Range("A1").Resize(UBound(a, 1), UBound(a, 2)) = a
'Sheets(2).Range("A1") = a
End Sub

Quand je mets un espoin sur "a", il semble bien prendre les bonnes valeurs mais je n'arrive pas ensuite à transférer ces données sur la feuille du classeur.
L'exemple en classeur joint.

Merci

Cdlt
 

Pièces jointes

  • Classeur1.xlsm
    16.9 KB · Affichages: 82
  • Classeur1.xlsm
    16.9 KB · Affichages: 72
  • Classeur1.xlsm
    16.9 KB · Affichages: 94

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Extraire lignes d'un tableau vba avec condition

Bonjour Mxr17,

Essayez le
VB:
Sub test()
Dim a(), Montab, Der As Long, i As Long, n As Long
  Der = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
  Montab = Sheets(1).Range("A1:C" & Der)
  For i = 1 To Der
    If Montab(i, 1) <> "111" And Montab(i, 2) = "" And Montab(i, 3) = "" Then
      n = n + 1
      ReDim Preserve a(1 To n)
      a(n) = Montab(i, 1)
    End If
  Next i
  Sheets(2).Range("A:A").ClearContents
  Sheets(2).Range("A1").Resize(n) = Application.Transpose(a)
End Sub
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
236
Réponses
6
Affichages
202

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal