Bonjour,Pour résoudre vos deux problèmes, nous allons explorer plusieurs solutions. Je vais essayer de vous proposer des méthodes qui minimisent l’usage de scripts ou de macros, en privilégiant autant que possible les fonctionnalités intégrées de Google Sheets. Cependant, étant donné la nature de votre demande, certaines solutions nécessiteront un peu de script.1. Ajouter automatiquement des cases à cocherSolution sans scriptGoogle Sheets ne permet pas d’ajouter directement des cases à cocher via une formule dans
ARRAYFORMULA
. Une solution serait d’utiliser une colonne dédiée où vous préinsérez manuellement des cases à cocher sur un grand nombre de lignes. Vous pouvez ensuite utiliser des formules pour ne « afficher » ces cases à cocher que lorsque la ligne correspondante contient des données.Solution avec scriptPour une solution plus dynamique, un script
onEdit
ou
onChange
peut être utilisé pour ajouter des cases à cocher automatiquement en fin de ligne lorsque des données sont entrées ou modifiées. Voici un exemple simple de script qui pourrait être adapté à vos besoins :
function onEdit(e) { var sheet = e.source.getActiveSheet(); // Assurez-vous de remplacer 'NomFeuille' par le nom réel de votre feuille if(sheet.getName() === 'NomFeuille') { var range = e.range; var row = range.getRow(); var lastColumn = sheet.getLastColumn(); var cell = sheet.getRange(row, lastColumn + 1); if(!cell.isChecked()) { cell.insertCheckboxes(); } } }
Ce script vérifie si la modification a lieu dans la feuille spécifique et ajoute une case à cocher dans la colonne suivant immédiatement la dernière colonne de données de la ligne modifiée.2. Garder les données synchroniséesUtiliser une colonne IDL’approche d’utiliser une colonne ID pour chaque enregistrement est judicieuse. Vous pouvez assigner un ID unique à chaque ligne de données dans votre source originale et inclure cet ID dans votre requête QUERY ou IMPORTRANGE. Cela permet de maintenir une référence constante à chaque enregistrement, même si les lignes sont réarrangées ou modifiées.Mise en œuvre
- Dans la source originale : Assurez-vous que chaque ligne de données a un ID unique.
- Dans le classeur cible : Importez l’ID avec vos données. Placez vos cases à cocher dans une colonne adjacente et utilisez une formule de recherche (
VLOOKUP
ou
INDEX
et
MATCH
) pour associer les données dynamiques avec les cases à cocher en fonction de l’ID.
Exemple de formule de rechercheSupposons que votre ID soit dans la colonne A et vos données dans les colonnes B à D. Vos cases à cocher sont en E. Vous pourriez utiliser une formule telle que :
=ARRAYFORMULA(IF(ISBLANK(A2:A), "", VLOOKUP(A2:A, PlageDeDonnéesImportées, NuméroDeColonneCorrespondante, FALSE)))
Cette formule vérifie si l’ID est présent, puis recherche cet ID dans la plage de données importées pour retourner la valeur correspondante. Vous devrez adapter
PlageDeDonnéesImportées
et
NuméroDeColonneCorrespondante
à votre cas d’usage.ConclusionCes solutions devraient vous aider à gérer les cases à cocher dynamiquement et à maintenir vos données synchronisées malgré les modifications de la structure de vos données sources. Pour une mise en œuvre spécifique, il pourrait être nécessaire d’ajuster les scripts et les formules en fonction des détails précis de votre projet.