Demander à VBA le nombre de cellules non vides d'une liste de noms

Bonjour à tous

J'ai dans le fichier joint deux listes de noms d'adhérents (une à jour : "TRANSFERT DE LISTE", une incomplète : ""FICHIER ADHÉRENTS") à comparer pour actualiser l'incomplète.

Manuellement, je recopiais la formule de la cellule L3 ("Colonne Test"), ligne par ligne, et quand apparaissait le premier "MANQUE", une fois positionné dessus, le raccourci "Alt+Maj+Z" insérait les cellules nécessaires et recopiait nom et montant dans les colonnes "FICHIER ADHÉRENTS".

Souhaitant automatiser cette tâche par une boucle "For A = 1 to n ... Next n ", je dois demander à VBA de compter le nombre de cellules non vides sous la cellule "Nom" de la colonne "I", pour qu'il l'attribue à "n".

Merci d'avance de bien vouloir apporter vos lumières à un vieux fossile ... débutant !

Georges Jop

4essai-03.xlsm (17.75 Ko)

Hello,

Clique sur le bouton bleu =D

@+

5essai-03.xlsm (24.15 Ko)

Merci, BAROUTE78,

C'est très rapide, malheureusement l'ajout des manquants se fait sous la liste incomplète, et ne respecte pas l'ordre des adhérents.

Cela rend mon fichier inutilisable.

Je dois absolument insérer les manquants en créant au bon endroit les cellules où ils seront copiés/collés.

Amicalement

Hello,

Voici le correctif =D

@+

5essai-03.xlsm (24.84 Ko)

Bonjour Georges JOP

Bonjour BAROUTE78

J'ai encore des lacunes en VBA mon code est le suivant

Sub InsertCopie()
Dim varError As Variant
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

NbLigneTransfert = ActiveSheet.Range("I" & Rows.Count).End(xlUp).Row

For i = 4 To NbLigneTransfert

    NbLigneAdherent = ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row

    On Error Resume Next
    varError = Application.Match(ActiveSheet.Range("I" & i).Value, ActiveSheet.Columns(4), 0)
    If IsError(varError) Then   'And varError <> 4 Then
        ActiveSheet.Range("D" & NbLigneAdherent + 1) = ActiveSheet.Range("I" & i)
        ActiveSheet.Range("C" & NbLigneAdherent + 1) = ActiveSheet.Range("H" & i)
    End If

    varError = 0
Next i

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Je ne suis pas arrivé à utiliser Application.WorksheetFunction.IfError et Application.WorksheetFunction.Match: je n'arrivais pas à tester le 1004 dans Excel365, pourquoi, je n'en sais rien?

j'ai remplacé cela par Application.Match et IfError

Hello Scraper,

Ce n'est pas le bon code du coup, reprend mon dernier post.

Pour tester le l'erreur c'est via la variable "Err" qui te renvoie le numéro de l'erreur si il y a.

@+

Super BAROUTE78,

Avec les corrections que tu as apportées, ça fonctionne !

Je vais

1) L'installer, et après ...

2) Prendre le temps de lire (et tâcher de comprendre) les lignes de code, pour être moins souvent un vieux bébé qui pleure, en attendant qu'on lui donne sa tétine !

Un grand merci,

Georges

Rechercher des sujets similaires à "demander vba nombre vides liste noms"