Tableau: ne pas prendre en compte les éléments vide

Bonjour,

J'ai créé un tableau dans lequel j’insère des éléments contenu dans la cellule A si la cellule B de la même ligne n'est pas vide. Je voudrais faire en sorte que les éléments vide ne soient pas pris en compte.

Pour l'instant, les éléments vide sont pris en compte (en donc, il y a des lignes vide lorsque je recopie le tout dans un autre classeur

exemple:

ColonneA | Colonne B

test1 | plop0

test2 | plop1

test3 |

test4 | plop2

mon code me recopie:

test1

test2

test4

Je voudrais qu'il me recopie:

test1

test2

test4

mon code:

Private Sub test()

 Dim Copie(33) As String, j%, i%, k%, derLigne As Integer, previ As Worksheet

 With ThisWorkbook.Worksheets("Clients")
    Copie(0) = .Range("B4")
    For i = 1 To 6
            Copie(i) = .Range("A" & i + 15)
    Next i
    For j = 7 To 33
        If (.Range("B" & j + 17)) <> "" Then
            Copie(j) = .Range("A" & j + 17)
        Else:
        End If
    Next j
End With

Workbooks.Open "C:\Users\XXXXX\Desktop\Ent\TABLEAUX AVANCEMENT.xlsx"

Set previ = ActiveWorkbook.Worksheets("Prév")
derLigne = previ.Range("b" & Rows.Count).End(xlUp).Row + 1

previ.Cells(derLigne, 1).Value = Copie(0)
For k = LBound(Copie) + 1 To UBound(Copie)
    previ.Cells(derLigne, 2).Value = Copie(k)
    derLigne = derLigne + 1
Next k

End Sub

Note: la partie concernée correspond à la partie:

    For j = 7 To 33
        If (.Range("B" & j + 17)) <> "" Then
            Copie(j) = .Range("A" & j + 17)
        Else:
        End If
    Next j

bonsoir,

une proposition de correction à tester

Private Sub test()

    Dim Copie(33) As String, j%, i%, k%, derLigne As Integer, previ As Worksheet

    With ThisWorkbook.Worksheets("Clients")
        Copie(0) = .Range("B4")
        For i = 1 To 6
            Copie(i) = .Range("A" & i + 15)
        Next i
        k = 6
        For j = 7 To 33
            If (.Range("B" & j + 17)) <> "" Then
                k = k + 1
                Copie(k) = .Range("A" & j + 17)
            End If
        Next j
    End With

    Workbooks.Open "C:\Users\XXXXX\Desktop\Ent\TABLEAUX AVANCEMENT.xlsx"

    Set previ = ActiveWorkbook.Worksheets("Prév")
    derLigne = previ.Range("b" & Rows.Count).End(xlUp).Row + 1

    previ.Cells(derLigne, 1).Value = Copie(0)
    For k = LBound(Copie) + 1 To UBound(Copie)
        previ.Cells(derLigne, 2).Value = Copie(k)
        derLigne = derLigne + 1
    Next k

End Sub

Merci pour ton aide.

Je teste ça de suite et je te tiens au courant.

Le résultat est parfait et correspond exactement à ce que je voulais, merci

Autre petite question:

Sais tu comment faire pour que les cellules de ma colonne A fusionnent en fonction des élements de la colonne B correspondant?

En clair:

dans la colonne A est inséré l'élément "Copie(0)" et dans la colonne B, les autres éléments contenus dans mon tableau "Copie". Je voudrais que les cellules de ma colonne A fusionne en fonction du nombre d'élément ajoutés en colonne B (de façon à avoir un élmt centré en colonne A pour l'ensemble des élmt B)

Merci pour ton aide

c'est bon, tout fonctionne!!!

Encore merci

Rechercher des sujets similaires à "tableau pas prendre compte elements vide"