Fonction Application.countA à partir de la bonne ligne

Bonjour,

J'ai ce code qui doit concaténer les mots de la colonne A avec tous les mots de la colonne C.

J'ai désigner les plages "maplage1" et "maplage3" à partir de la 2ème ligne car il y a des en-têtes.

Je veux vérifier que ces deux plages contiennent au moins un mot chacune avant de lancer la concaténation. Cependant lorsqu'il y a un mot en colonne A et pas de mot en colonne C, et bien le mot de l'en-tête de la colonne C est utilisé! Pourtant j'ai définie la colonne C comme ça :

derligne3 = Range("C" & Rows.Count).End(xlUp).Row

et

Set maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))

donc normalement ça comme ligne 2 non?

Et ensuite j'utilise la fonction Application.countA().

Quelqu'un a-t-il une explication?

Sub otk()
Sheets("feuil1").Activate

    Dim maplage1, maplage3 As Range
    Dim c, d As Range
    Dim derligne1, derligne3 As Long

    derligne1 = Range("A" & Rows.Count).End(xlUp).Row
    derligne3 = Range("C" & Rows.Count).End(xlUp).Row

    Set maplage1 = Range((2, 1), Cells(derligne1, 1))
    Set maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))

    If Application.CountA(maplage1) = 0 Or Application.CountA(maplage3) = 0 Then
    MsgBox "Cellule(s) vide(s)"
    Else

    For Each c In maplage1
    For Each d In maplage3
        i = i + 1
        Cells(1 + i, "D") = c & "_" & d

        Next d
        Next c
        End If

End Sub

Bonjour,

dernière ligne de la colonne A

derniereLigne = Sheets("Feuil1").Cells(Rows.Count, "A").End(xlUp).Row

Bonjour et merci pour ton aide!

J'ai essayé avec la modification mais ça continu à utiliser la cellule C1 si les cellules en dessous sont vides. Par contre bizarrement lorsque la cellule C2 n'est pas vide alors la concaténation commence bien en C2.

Bonjour,

avez-vous modifier les 2 lignes ?

derligne1 = Sheets("Feuil1").Cells(Rows.Count, "A").End(xlUp).Row
derligne3 = Sheets("Feuil1").Cells(Rows.Count, "C").End(xlUp).Row

Bonjour,

Oui j'ai modifié les deux lignes.

Lorsque je fais

maplage3.select 

ça sélectionne les cellules C1 et C2 si C2 est vide et uniquement C2 si elle contient une valeur! Alors que "maplage3" c'est

maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))

donc normalement ça devrait sélectionner à partir de la ligne 2

Rechercher des sujets similaires à "fonction application counta partir bonne ligne"