Bien au contraire vos propositions m'ont permis de voir d'autres possibilités. Mais les 2 fichiers seront bien dans le même dossier et il nous faut bien qu'un seul fichier "Activité" à compléter au fur et à mesure tout comme "Fiche 2".
J'ai exclu les filtres automatiques pour 2 raisons :
- les utilisateurs principaux de ces tableaux ne maitrisent peu voire pas du tout l'outil informatique et encore moins Excel (rien qu'à l'idée de devoir remplir ces tableaux leurs procurent des angoisses )
- J'ai par l'intermédiaire des macros et des "boutons à cliquer" définit tous les tris dont ils pouvaient avoir besoin.
Pour autant, c'est une possibilité que je n'avais pas encore totalement exclue. Je crains juste que les certains utilisateurs soient perdus lorsqu'ils exploitent les fichiers après quelqu'un qui utilise les filtres automatiques. Les potentiels problèmes augmentent avec le nombre d'utilisateurs ! Je vais peut-être autoriser les filtres automatiques et faire une macro et un bouton pour annuler les filtres en cas de non maitrise de cet outil.
Afin que je maitrise un peu ce que vous avez fait précédemment, pourriez-vous m'expliquer dans les grandes lignes les étapes. Et surtout les noms à remplacer avec mes versions définitives dans les macros. Sachant que mes fichiers définitifs se nomment "RP - Suivi Activité 2019" et "Fiche navette - RP 2019".
Donc j'imagine que :
- "Activité 1" devient "RP - Suivi Activité 2019"
- "Fiche 2" devient "Fiche navette - RP 2019"
Donc pas de souci pour modifier les noms dans les macros mais que devient "Activité1" et "Fiche2" (sans espace) sachant que les noms de mes fichiers sont plus longs ?
De plus, il y a aussi les « fonctions ? » suivantes qui ont été crées en plus des macros, dois-je les utiliser aussi ? Là je reconnais que c'est du vrai chinois pour moi même si je comprend vaguement leur rôle. Pour infos, j’ai sept autres tableaux quasi identiques à faire de même.
Function Ctrl_Fichier_Ouvert()
' Renvoie 1 si le fichier Activité1.xlsm est ouvert, sinon renvoie 0
Dim Wb As Workbook, FichierOK
FichierOK = 0
For Each Wb In Workbooks
If Wb.Name = "Activité 1.xlsm" Then
FichierOK = 1
Exit For
End If
Next Wb
If Wb Is Nothing Then
FichierOK = 0
End If
Ctrl_Fichier_Ouvert = FichierOK
End Function
----------------------------------------------------------------------------------
Function PresentOuPas(Taille, NDossier)
' Renvoie 1 si présent sinon renvoie 0
Present = 0
For i = 4 To Taille
If Range("D
").Cells(i, 1) = NDossier Then
Present = 1
Exit For
End If
Next i
PresentOuPas = Present
End Function
----------------------------------------------------------------------------------
Sub AjouterLigne(LigneSource, LigneDestination)
' Ajoute la ligne manquante.
' Module "tordu" car les N° colonne source et destination ne sont pas les mêmes
' L'array Indice contient N°colonneSource à copier dans N°ColonneDestination
' donc 2,4 veut dire copier colonne2 de source dans colonne4 de destination
Dim Indice()
Indice = Array(1, 1, 2, 4, 3, 2, 4, 3, 5, 5, 6, 6, 7, 7, 10, 8, 11, 9)
For k = 0 To 17 Step 2
DonneeSource = Workbooks("Activité 1.xlsm").Sheets("Totalité").Cells(LigneSource, Indice(k))
ThisWorkbook.Sheets("Fiche 2").Cells(LigneDestination, Indice(k + 1)) = DonneeSource
Next k
End Sub
Merci pour "la belle gueule" de mes tableaux, je ne pensais pas arriver à ceci il y a quelques mois. Internet et la lecture des forums qui m'ont permis d'utiliser les macros et autres formules. Je n’avais encore jamais fait appel à un internaute mais votre aide est précieuse et me permet de me sortir de questionnements auxquels je n’arrivais pas à trouver de réponses.
Un grand merci.
Cela me vaut encore quelques nuits très courtes voire blanches après plusieurs mois de travail mais vivement la fin !
Désolée pour ce message bien long avec pas mal de questions où je fais encore appel à vous.
Bonne journée