Bonjour à tous,
Après des recherches infructueuses et sans réponse concrète jusqu’à maintenant, je me tourne vers vous pour obtenir votre avis sur le problème que je rencontre.
Dans un premier temps, voici le tableur EXCEL :
Base de données - CC suisses.xlsm (96,0 Ko)
Quelques mots de contexte : Il s’agit d’un tableur EXCEL construit sur deux onglets : un formulaire sur le 1er et un tableau de données sur le 2nd.
Le tableau recueil des informations afférentes à des centres commerciaux en Suisse, que nous collectons dans le cadre de notre métier (j’ai effacé une partie des données, malheureusement confidentielles et qui n’auront de toute façon pas d’importance quant au problème rencontré).
L’objectif du tableau : Trier les différents centres commerciaux par nombre d’enseignes, par visiteurs à l’année etc… et d’en faire un classement (d’où la 1ère colonne).
Cette première colonne est donc importante et c’est là que réside mon problème. Elle est construite à partir de la 3ème ligne, avec la formule suivante : =INDIRECT(ADRESSE(LIGNE()-1;COLONNE()))+1. Pour que lorsque l’on insère une nouvelle ligne avec le formulaire dans le tableau, le classement se mette automatiquement à jour.
Tout fonctionne très bien, à l’exception de la chose suivante : systématiquement à l’ouverture du fichier, les cellules qui comportent la formule indiquée ci-dessus, ont un #VALEUR. (Vous le verrez en ouvrant le fichier sinon voir ci-dessous).
Pourtant un simple double-clic sur l’une de ces cellules avec #VALEUR et appuyer sur Entrée, suffit pour recalibrer tout le classement. Comme si la formule avait besoin d’être manuellement validée…
Pour info, si cela est nécessaire ou peut-être utile, vous trouverez ci-dessous la petite macro avec laquelle le formulaire fonctionne :
Sub XT()
’
’ XT Macro
’
’
Range(« G6 »).Select
Sheets(« Tableau CC suisses »).Select
Rows(« 6:6 »).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(« A7 »).Select
Selection.Copy
Range(« A6 »).Select
ActiveSheet.Paste
Range(« B6 »).Select
Sheets(« Formulaire nouveau centre »).Select
Range(« E3:K3 »).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(« Tableau CC suisses »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(« Formulaire nouveau centre »).Select
Range(« L3 »).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(« Tableau CC suisses »).Select
Range(« K6 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(« I7 »).Select
Application.CutCopyMode = False
Selection.Copy
Range(« I6 »).Select
ActiveSheet.Paste
Range(« J7 »).Select
Application.CutCopyMode = False
Selection.Copy
Range(« J6 »).Select
ActiveSheet.Paste
Range(« N6 »).Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Rows(« 6:6 »).Select
End Sub
Ma question… : comment puis-je faire pour que le classement en colonne A de mon tableur apparaisse normalement dès l’ouverture du fichier ?
Je fais avec le peu de connaissance en EXCEL que j’ai, et là, ça me dépasse !
De passage sur un autre forum, l'un des utilisateurs a ouvert le fichier sans n'avoir aucun souci, donc sans #VALEUR.
Je suis sous Office avec un abonnement Microsoft 365 v.16.41 et lui sous Office 2019 vraisemblablement.
Bonne journée à tous,
Shinrei
Après des recherches infructueuses et sans réponse concrète jusqu’à maintenant, je me tourne vers vous pour obtenir votre avis sur le problème que je rencontre.
Dans un premier temps, voici le tableur EXCEL :
Base de données - CC suisses.xlsm (96,0 Ko)
Quelques mots de contexte : Il s’agit d’un tableur EXCEL construit sur deux onglets : un formulaire sur le 1er et un tableau de données sur le 2nd.
Le tableau recueil des informations afférentes à des centres commerciaux en Suisse, que nous collectons dans le cadre de notre métier (j’ai effacé une partie des données, malheureusement confidentielles et qui n’auront de toute façon pas d’importance quant au problème rencontré).
L’objectif du tableau : Trier les différents centres commerciaux par nombre d’enseignes, par visiteurs à l’année etc… et d’en faire un classement (d’où la 1ère colonne).
Cette première colonne est donc importante et c’est là que réside mon problème. Elle est construite à partir de la 3ème ligne, avec la formule suivante : =INDIRECT(ADRESSE(LIGNE()-1;COLONNE()))+1. Pour que lorsque l’on insère une nouvelle ligne avec le formulaire dans le tableau, le classement se mette automatiquement à jour.
Tout fonctionne très bien, à l’exception de la chose suivante : systématiquement à l’ouverture du fichier, les cellules qui comportent la formule indiquée ci-dessus, ont un #VALEUR. (Vous le verrez en ouvrant le fichier sinon voir ci-dessous).
Pourtant un simple double-clic sur l’une de ces cellules avec #VALEUR et appuyer sur Entrée, suffit pour recalibrer tout le classement. Comme si la formule avait besoin d’être manuellement validée…
Pour info, si cela est nécessaire ou peut-être utile, vous trouverez ci-dessous la petite macro avec laquelle le formulaire fonctionne :
Sub XT()
’
’ XT Macro
’
’
Range(« G6 »).Select
Sheets(« Tableau CC suisses »).Select
Rows(« 6:6 »).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(« A7 »).Select
Selection.Copy
Range(« A6 »).Select
ActiveSheet.Paste
Range(« B6 »).Select
Sheets(« Formulaire nouveau centre »).Select
Range(« E3:K3 »).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(« Tableau CC suisses »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(« Formulaire nouveau centre »).Select
Range(« L3 »).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(« Tableau CC suisses »).Select
Range(« K6 »).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(« I7 »).Select
Application.CutCopyMode = False
Selection.Copy
Range(« I6 »).Select
ActiveSheet.Paste
Range(« J7 »).Select
Application.CutCopyMode = False
Selection.Copy
Range(« J6 »).Select
ActiveSheet.Paste
Range(« N6 »).Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Rows(« 6:6 »).Select
End Sub
Ma question… : comment puis-je faire pour que le classement en colonne A de mon tableur apparaisse normalement dès l’ouverture du fichier ?
Je fais avec le peu de connaissance en EXCEL que j’ai, et là, ça me dépasse !
De passage sur un autre forum, l'un des utilisateurs a ouvert le fichier sans n'avoir aucun souci, donc sans #VALEUR.
Je suis sous Office avec un abonnement Microsoft 365 v.16.41 et lui sous Office 2019 vraisemblablement.
Bonne journée à tous,
Shinrei