Compilation liste données depuis une cellule fixe
Bonjour,
J'aimerais pouvoir créer un fichier excel pour dans le futur en faire une carte de contrôles avec un graphique etc.
Mon interrogation se porte sur le fait de pouvoir créer une liste de données dans le temps, en remplissant une cellule fixe dans mon classeur. Cette cellule sera amenée à être modifié, mais la valeur antérieure devra impérativement être copiée dans la liste avant d’être supprimée de la cellule fixe.
Voilà ce que je souhaiterais :
Si par exemple, la cellule où j'écris ma donnée (hauteur d'une pièce) est la cellule A2, il faudrait que l'on puisse écrire la donnée dans cette cellule et que ça remplisse la colonne B où toutes les entrées dans la cellule A2 seraient compilées les unes à la suite des autres.
Dans le futur, la colonne dite "compilée" serait dans une autre feuille pour question de lisibilité, mais le principe reste le même si je comprends comment faire.
L'idée globale est qu'une personne remplisse seulement une cellule pour ensuite pouvoir faire un graphique grâce à ma "colonne compilée". Je pourrais le faire facilement en remplissant simplement une colonne au fur et à mesure, mais quand il y aura +100 valeurs, ce sera pas pratique de naviguer dans le classeur excel pour écrire les données, d'où ma cellule unique pour les écrire...
Bien cordialement,
Dans l'attente de lire vos conseils avisés.
Bonjour SpanouGendt et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER] ainsi que ses fonctionnalités
qui vous aideront dans vos demandes et réponses sur ce forum.
Merci de votre participation
Concernant votre demande, voici une possibilité de code
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nLig As Long
' Si saisie dans la cellule A2
If Target.Address = "$A$2" Then
' Vérifier si la cellule contient une valeur, sinon on sort
If Target = "" Then Exit Sub
' Avec l'objet conteneur : feuille nommée "Données"
With Sheets("Données")
' Trouver la nouvelle ligne vide de la colonne B, pour inscrire la valeur
nLig = .Range("B" & Rows.Count).End(xlUp).Row + 1
' Désactiver les évènements
Application.EnableEvents = False
' Inscrire la nouvelle valeur
.Range("B" & nLig).Value = Target.Value
' Effacer le valeur saisie
Target.ClearContents
Target.Select
' Réactiver les évènements
Application.EnableEvents = True
End With
End If
End SubEt voici le fichier exemple
A+
Bonjour BrunoM45,
Merci pour cette solution, effectivement c'est ce que je souhaitais.
A+
Bonjour,
Une autre question : comment faire la même chose mais pour compiler (dans le même classeur) les données de la cellule B2 de la feuille "Saisie" dans la colonne D de la feuille "Données", tout en gardant le fait que ça fonctionne aussi pour compiler la cellule A2 dans l'autre colonne.
J'ai essayé d'ajouter en dessous de votre solution en modifiant A2 par B2 etc mais ça ne fonctionne pas. Faut-il que j'insère un deuxième "If" ?
Au final il faudrait que respectivement les données de A2 (B2) dans Saisie soient dans la colonne A (D) de données mais je ne sais pas comment ajouter cela à la suite du code existant ou à l'intérieur même si je suppose qu'il faudrait un autre "If" mais je ne suis pas sûr...
Merci de votre aide.