Boucle VBA avec condition multi colonne et multi feuille
bonjour
je fait appel a votre savoir car le mien arrive a saturation
je souhaite récupérer les valeur des colonne dont la condition est oui sur plusieurs feuille, jusque la le code fonctionne bien
mon problème est que la lecture ne ce fait pas part colonne mes en ligne ce qui fait si deux valeur successive on oui l'une écrase l'autre
je souhaiterais que ma macro termine une condition avec de débuter la suivante en ce mettant sous la dernier ligne écrite
merci pour votre aide
mon code est e suivant
Const nomFO = "TEMPORAIRE" ' nom de la feuille Origine 1
Const nomFO2 = "GLOBAL" ' nom de la feuille Origine 1
Const nomFD = "TEST" ' nom de la feuille Destination
Sub TEST_fin()
'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau
Dim NombreLigne As Integer
'Enregistrement du nombre de ligne de ton tableau
NombreLigne = InputBox("Nombre de ligne à traiter ?")
'Boucle qui va de 1 au nombre total de ligne
For i = 1 To NombreLigne
'Si la cellule de la ligne i et de la colonne est égale à Oui, alors
If Sheets(nomFO).Cells(i, 25) = "Oui" Then
'Je vais sur la feuille de destination sur la celulle i en collonne et copier la cellulle
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 23).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 24).Value
ElseIf Sheets(nomFO).Cells(i, 37) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 35).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 36).Value
ElseIf Sheets(nomFO2).Cells(i, 27) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 25).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 26).Value
ElseIf Sheets(nomFO2).Cells(i, 39) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 37).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 38).Value
ElseIf Sheets(nomFO2).Cells(i, 51) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 49).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 50).Value
ElseIf Sheets(nomFO2).Cells(i, 63) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 61).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 62).Value
ElseIf Sheets(nomFO2).Cells(i, 75) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 73).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 74).Value
ElseIf Sheets(nomFO2).Cells(i, 87) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 85).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 86).Value
'Fin de la condition If
End If
'Fin de la boucle For
Next
Exit Sub
End Sub
Bonjour pyro206, Excelleurs(es),
Merci d'utiliser les quotes quand tu mets du code
Const nomFO = "TEMPORAIRE" ' nom de la feuille Origine 1
Const nomFO2 = "GLOBAL" ' nom de la feuille Origine 1
Const nomFD = "TEST" ' nom de la feuille Destination
Sub TEST_fin()
'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau
Dim NombreLigne As Integer
'Enregistrement du nombre de ligne de ton tableau
NombreLigne = InputBox("Nombre de ligne à traiter ?")
'Boucle qui va de 1 au nombre total de ligne
For i = 1 To NombreLigne
'Si la cellule de la ligne i et de la colonne est égale à Oui, alors
If Sheets(nomFO).Cells(i, 25) = "Oui" Then
'Je vais sur la feuille de destination sur la celulle i en collonne et copier la cellulle
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 23).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 24).Value
ElseIf Sheets(nomFO).Cells(i, 37) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 35).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 36).Value
ElseIf Sheets(nomFO2).Cells(i, 27) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 25).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 26).Value
ElseIf Sheets(nomFO2).Cells(i, 39) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 37).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 38).Value
ElseIf Sheets(nomFO2).Cells(i, 51) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 49).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 50).Value
ElseIf Sheets(nomFO2).Cells(i, 63) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 61).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 62).Value
ElseIf Sheets(nomFO2).Cells(i, 75) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 73).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 74).Value
ElseIf Sheets(nomFO2).Cells(i, 87) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 85).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 86).Value
'Fin de la condition If
End If
'Fin de la boucle For
Next
Exit Sub
End Sub
je souhaiterais que ma macro termine une condition avec de débuter la suivante en ce mettant sous la dernier ligne écrite
Peux tu reformuler ta phrase?
A te lire,
Medas
Bonjour medas
Désolé pour la mauvaise formulation
J'ai plusieurs boucle dans le code
Je voudrais que chaque boucle termine avec d'exécuter la suivante.
En gros je voudrais que mon code tourne de la manière suivante
J'ai plus leurs feuille
Dans ces feuille mes tableau on un grandeur et forme différente
Je doit récupérer les informations des collonees ayant la condition oui uniquement
Exemple
Cellule A 23 = Oui je récupère la case b23
Cellule a24 = code je passe à cellule a25 etc.. ..
Mon souci est que les conditions oui ne sont pas systématiquement en colonne À il peuvent ce trouver en aa en bb etc. ...
Ce que je voudraique ma boucle termine sont traitement en colonne À avant de commencer le traitement des colonne aa
Et quel dérive lien en dessous de l'autre
mon problème est que la lecture ne ce fait pas part colonne mes en ligne ce qui fait si deux valeur successive on oui l'une écrase l'autre
.
C'est tout à fait normal que ta macro te fait ligne par ligne. Tu fais un parcours avec une multitude if donc je te le fais en français.
pour i égale un à nombreLigne si ma cellule égale oui alors copie moi sinon si ma cellule égale oui copie moi .......
En gros c'est tout à fait normal qu'il écrase la donnée au fur à mesure qui vérifie tes conditions.
Je peux comprendre que tu t'y connais rien dans la programmation. Mais avant d'écrire quoi se soit sur un éditeur VB; prends le temps de faire une simulation avec juste un crayon et un papier sa te suffit pour résoudre ton problème et d'écrire le bon code.
Quand j'ai lu ton poste et ton code j'ai éclaté de rire désolé
pyro206,
à tester:
Sub test_Fin()
'variable
Dim derLg, i,nbLg As Integer
Dim wsFo, wsFO2, wsFd As Worksheet
'initialisation des feuilles
Set wsFo = ThisWorkbook.Sheets("TEMPORAIRE")
Set wsFO2 = ThisWorkbook.Sheets("GLOBAL")
Set wsFd = ThisWorkbook.Sheets("TEST")
nbLg = InputBox("Nombre de ligne à traiter ?")
'sert pour la copie des autres colonnes les uns sous les autres
derLg = 0
For i = 1 To nbLg
If wsFo.Cells(i, 25) = "Oui" Then
wsFd.Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i, 2).Value = Sheets(nomFO).Cells(i, 23).Value
wsFd.Cells(i, 3).Value = Sheets(nomFO).Cells(i, 24).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFo.Cells(i, 37) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 35).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 36).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 27) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 25).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 26).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 39) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 37).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 38).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 51) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 49).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 50).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 63) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 61).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 62).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 75) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 73).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 74).Value
derLg = derLg + 1
End If
Next i
For i = 1 To nbLg
If wsFO2.Cells(i, 87) = "Oui" Then
wsFd.Cells(i + derLg, 1).Value = Sheets(nomFO).Cells(i, 1).Value
wsFd.Cells(i + derLg, 2).Value = Sheets(nomFO).Cells(i, 85).Value
wsFd.Cells(i + derLg, 3).Value = Sheets(nomFO).Cells(i, 86).Value
derLg = derLg + 1
End If
Next i
End Sub
alors je t'ai pour chaque feuille et chaque colonne dans la feuille un parcours avec la condition. Si la condition est respecté on copie et on compte le nombre de fois qu'on copie. on récupère le nombre de copie faites sur la première colonne pour l'ajouter à la suite quand il va vérifier les autres colonnes des autres feuilles et continue de compter
j'espère qui fera sa sinon je suis mauvais
A te lire,
Medas
Bonjour,
mon problème est que la lecture ne ce fait pas part colonne mes en ligne ce qui fait si deux valeur successive on oui l'une écrase l'autre
.
Je ne vois pas où deux "oui" successifs pourraient entraîner un télescopage ! tes conditions étant exclusives l'une des autres. Si la feuille destination ne contient rien au départ tout ce qui peut t'arriver ce sont des lignes vides...
Mais reprenons dans l'ordre
Ton code mis sous balises Code, indenté et nettoyé des commentaires dont l'indigence est la caractéristique principale (exemple : 'Fin de la condition If
pour commenter la ligne qui suit : End If
J'aurais trouvé ce code ainsi :
Sub TEST_fin()
Dim NombreLigne As Integer
NombreLigne = InputBox("Nombre de ligne à traiter ?")
For i = 1 To NombreLigne
If Sheets(nomFO).Cells(i, 25) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 23).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 24).Value
ElseIf Sheets(nomFO).Cells(i, 37) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 35).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 36).Value
ElseIf Sheets(nomFO2).Cells(i, 27) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 25).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 26).Value
ElseIf Sheets(nomFO2).Cells(i, 39) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 37).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 38).Value
ElseIf Sheets(nomFO2).Cells(i, 51) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 49).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 50).Value
ElseIf Sheets(nomFO2).Cells(i, 63) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 61).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 62).Value
ElseIf Sheets(nomFO2).Cells(i, 75) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 73).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 74).Value
ElseIf Sheets(nomFO2).Cells(i, 87) = "Oui" Then
Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value
Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 85).Value
Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 86).Value
End If
Next
Exit Sub
End Sub
J'aurais passé beaucoup beaucoup moins de temps à le lire !
- un
Exit Sub
précédantEnd Sub
: on ne voit pas bien pourquoi ! On ne sort qu'une fois ! - une répétition en nombre conséquent de la feuille destination : ça mérite une mise sous bloc With, on ne l'indiquera qu'une fois, moins à écrire et de plus l'exécution en sera accélérée...
- une régularité de la succession des colonnes testées, laquelle n'est pas mise à profit pour raccourcir le code (par une boucle imbriquée...)
- une InputBox pour indiquer le nombre de lignes à traiter : si on doit traiter toutes les lignes, ce qui semble être le cas, la méthode paraît farfelue...
- des constantes pour les noms de feuilles : efficacité douteuse, il y a mieux à faire, en utilisant des variables objet pour améliorer le code...
On va donc procéder à quelques aménagements...
Sub TEST_fin()
Dim FO As Worksheet, FO2 As Worksheet, n%, i%, k%, tft, vu As Boolean
Set FO = Worksheets("TEMPORAIRE")
Set FO2 = Worksheets("GLOBAL")
n = FO.Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("TEST")
For i = 1 To n
For k = 25 To 37 Step 12
If FO.Cells(i, k) = "Oui" Then
tft = Array(FO.Cells(i, 1), FO.Cells(i, k - 2), FO.Cells(i, k - 1))
.Cells(i, 1).Resize(, 3).Value = tft
vu = True: Exit For
End If
Next k
If Not vu Then
For k = 27 To 87 Step 12
If FO2.Cells(i, k) = "Oui" Then
tft = Array(FO2.Cells(i, 1), FO2.Cells(i, k - 2), FO2.Cells(i, k - 1))
.Cells(i, 1).Resize(, 3).Value = tft
Exit For
End If
Next k
End If
vu = False
Next i
End With
End Sub
Voilà qui est tout de même plus court, un peu plus concis comme code, et roulera un peu plus vite...
Tu noteras que bouclant sur les colonnes, pour conserver le caractère exclusif de chaque condition (impliqué par les ElseIf du code initial) on a utilisé une variable booléenne, en raison de la dualité de feuilles origine, de façon que si la condition est satisfaite sur FO on puisse occulter FO2...
Ce code doit donc faire exactement ce que faisait le code initial, ce qui laisse intactes des interrogations :
- le caractère exclusif des conditions : est-ce qu'elles doivent l'être ? est-ce bien ce qu'on voulait faire ?
- le fait que si aucune condition n'est satisfaite sur une ligne, cette ligne restera vide sur la feuille destination (sauf si des valeurs y préexistaient) : est-ce bien aussi ce que l'on veut ?
Cordialement.
edit : pendant que je rédigeais ce post, je n'ai pu prendre connaissance du déroulement de la discussion, mais il apparaît que les 2 questions que je pose ci-dessus devraient être tranchées pour un caractère non exclusif de chaque condition et un remplissage normal de la feuille destination, ce que fera semble-t-il la proc. de Medas que j'ai rapidement parcourue (qui reste à raccourcir...). Ordre d'inscription à confirmer car elle ne produira pas le même ordre que celui impliqué par la proc. initiale.
Mferrand, pyro206,
Je n'ai même pas fait attention sur le pas bien vu
Je n'ai pas cherché à analyser le code
J'ai fait ce qu'il a écrit pas chercher midi à quatorze heures
En tous cas bravo pour ton résultat
J'aurai pas fait mieux
Cordiales,
Medas
Re à tous !
Version aménagée pour tester toutes les cellules (toutes les colonnes indiquées par lignes) et remplir normalement la feuille :
Sub TEST_fin()
Dim FO As Worksheet, FO2 As Worksheet, n%, i%, k%, lgn%, tft
Set FO = Worksheets("TEMPORAIRE")
Set FO2 = Worksheets("GLOBAL")
n = FO.Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("TEST")
For i = 1 To n
For k = 25 To 37 Step 12
If FO.Cells(i, k) = "Oui" Then
lgn = lgn + 1
tft = Array(FO.Cells(i, 1), FO.Cells(i, k - 2), FO.Cells(i, k - 1))
.Cells(lgn, 1).Resize(, 3).Value = tft
End If
Next k
For k = 27 To 87 Step 12
If FO2.Cells(i, k) = "Oui" Then
lgn = lgn + 1
tft = Array(FO2.Cells(i, 1), FO2.Cells(i, k - 2), FO2.Cells(i, k - 1))
.Cells(lgn, 1).Resize(, 3).Value = tft
End If
Next k
Next i
End With
End Sub
On continue de procéder par lignes, en défilant les colonnes sur chaque ligne, comme dans la proc. initiale. En procédant par colonne, on prélèvera les mêmes valeurs mais l'ordre d'inscription ne sera pas le même.
Cordialement.
MFerrand
tous d'abord un très grand merci pour ce temps que vous m'avez accorder,
votre macro a fonctionné parfaitement au debut mes il analyse uniquement une feuille sur les deux
je cherche la raison
Bonsoir,
votre macro a fonctionné parfaitement au debut mes il analyse uniquement une feuille sur les deux
je cherche la raison
Tu es tombé sur mon interruption repas et quelques autres activités accessoires... je vois maintenant ton post.
Pas de mystère sur le problème que tu soulèves : il n'y a aucun Oui sur la feuille GLOBAL, donc rien n'est extrait, logique !
Ayant vu ton fichier, je vais te faire une nouvelle version : pour conserver l'en-tête sur TEST et effacer les données antérieures, faire partir les boucles de la ligne 4, la première ligne de données sur tes feuilles, et opérer avec un tableau global résultats. Ce devrait être plus rapide...
a+
edit : et traiter une feuille après l'autre, parce que le nombre de lignes n'est pas le même !
Voilà la nouvelle version, sous le nom TEST_fin5... affectée à ton bouton sur TEST.
Cordialement.
bonjour mferrand
pas de souci moi aussi j'avais du retourner au travail ensuite
concernant la feuille global je n'avais pas fait attention que les colonnes était vide.
cette erreur est du au contenu que j'ai du effacé (confidentialité oblige
la macro est parfaite elle fonctionne au cordeau .
il me reste encore beaucoup a apprendre
je vous remercie pour le temps accorder a ma demande