Récupérer les cellules non vides d'un tableau

Bonjour à tous,

Je suis tout nouveau sur le forum, c'est d'ailleurs mon premier post car après avoir écumé les forums je désespère avec mon problème de macro VBA, que je vous décris ci-dessous afin d'avoir votre aide :

1/ j'ai un tableau dans l'onglet "PIVOTplanning" qui contient des colonnes de A à M et qui s'étend de la ligne 3 à 13502. Les cellules de ce tableau sont récupérées à partir de différents autres tableaux (par exemple A - Michel-P & Moussa) via des formules.

2/ J'ai un autre tableau dans l'onglet "PlanningMONTAGE" qui récupère (via la macro Feuil11.CopierCellulesNonVides), les lignes du tableau 'PIVOTplanning" si les cellules de la colonne F sont non vides.

Ma macro s'enclenche à l'ouverture du fichier et s'actualise toute les 20 secondes (via d'autres macros, une dans le workbook and l'autre dans le module 3)

==> Jusque là c'est bon MAIS LE PROBLEME EST :

Si dans le tableau "PIVOTplanning", des cellules non vides redeviennent vide (car une intervention s'est annulée), elle continue à apparaître dans mon tableau "PlanningMONTAGE" alors qu'elle devrait disparaître, ce qui provoque des doublons (exemple dans le tableau --> si vous effacer dans l'onglet "A - Michel-P & Moussa" le clients 2, il disparaitra du tableau "PIVOTmontage" mais vous verrez que le clients 3 apparaît 2 fais dans le tableau "PLanningMONTAGE" une fois le rafraichissement fait (avec Ctrl + R) ....

Voici mon code :

Sub CopierCellulesNonVides()

Dim wsPIVOTmontage As Worksheet
Dim wsPLanningMONTAGE As Worksheet
Dim L As Long
Dim LS As Long

Application.ScreenUpdating = True

Set wsPIVOTmontage = ThisWorkbook.Sheets("PIVOTmontage")        'le nom de ta feuille qui contient les données

Set wsPLanningMONTAGE = ThisWorkbook.Sheets("PLanningMONTAGE")  'le nom de ta feuille de destination

LS = 1
For L = 2 To 13502 'dernière ligne du tableau
    If wsPIVOTmontage.Cells(L, 6) <> "" Then
       LS = LS + 1
       wsPLanningMONTAGE.Range("A" & LS & ":M" & LS) = wsPIVOTmontage.Range("A" & L & ":M" & L).Value
    End If

Next
Application.ScreenUpdating = True

End Sub

Et voici mon autre code qui permet de refaire tourner la macro lorsque la valeur d'une des cellules du tableau "PIVOTmontage" change :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 1 And Target.Column <= 13 And Target.Row >= 3 And Target.Row <= 13502 Then
Call Feuil11.CopierCellulesNonVides
End If
End Sub

J'aurai vraiment besoin d'une âme charitable qui puisse me faire avancer au plus vite.

Merci d'avance

Bonjour SergeCa et

Pour bien commencer, merci de mettre ton code entre les balises [ CODE] et [ /CODE] sans l'espace après le [

A+

[quote=BrunoM45 post_id=647508 time=1525437997 user_id=15789]

Bonjour SergeCa et

Pour bien commencer, merci de mettre ton code entre les balises [ CODE] et [ /CODE] sans l'espace après le [

A+

[/quote]

Bonjour BrunoM45,

C'est noté, je tacherai de le faire la prochaine fois, merci pour l'info !

Anyone ?

J'ai vraiment besoin d'aide pour débloquer mon problème et pouvoir avancer sur le dossier...

Salut SergeCa,

Juste une question, pourquoi ne pas RàZ à chaque fois ton tableau dans "PlanningMONTAGE" comme ça plus de souci

A+

Hey BrunoM45,

Déjà merci pour l'histoire du

, en effet c'est beaucoup plus pratique !

Je n'ai pas bien compris ta proposition de RaZ ?

Re,

Regarde la feuille "PlanningMONTAGE" du fichier ci-joint et lance ta macro que d'ailleurs j'ai déplacé dans un module, c'est mieux

A+

Re,

Regarde la feuille "PlanningMONTAGE" du fichier ci-joint et lance ta macro que d'ailleurs j'ai déplacé dans un module, c'est mieux

A+

Houpiiiiiiiiiiiiiii !!!!!!!!!!

Merci mille fois BrunoM45, c'est exactement ce qui me manquait ! T'es au top !

A+ pour d'autres problèmes qui sait

Re,

Merci mille fois BrunoM45, c'est exactement ce qui me manquait ! T'es au top !

Rechercher des sujets similaires à "recuperer vides tableau"