Microsoft 365 Aide sur une automatisation de saisie de données

  • Initiateur de la discussion Initiateur de la discussion jean_jack
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jean_jack

XLDnaute Junior
Bonjour à tous j’espère que vous êtes tous épargnés par le COV 19. Je viens ré-poster mon sujet de la dernière fois qui n'avait pas eu de solution en espérant que cette seconde tentative sera la bonne .

Dans le fichier excel joint vous trouverez a gauche un tableau avec une série de nom comme celui-ci (165702_1_1) , ces noms sont obtenues à partir d'une fiche papier que je reçois en fin de journée. Chaque nom est subdivisé comme suit: 165702 = Nom d'un bloc ; 1 = Numéro de la ligne 1 ; 1 = Numéro de la colonne 1. Ce qui donne 165702_1_1 . Ce que j'aimerai faire c'est de rentrer dans un formulaire le nom d'un seule bloc , suivit du nombre de lignes , du nombre de colonnes et du nombre de blocs pour qu’ils puissent générer automatiquement le noms de tous les autres points et les insérer dans une colonne comme dans la colonne N. J'ai imagé mes explications avec des flèches dans le fichier excel. J'espère sincèrement que vous pourrez m'aider parce que je galère grave avec ces données , parfois j'en ai plus 500 à rentrer à la main.

Un code VBA qui alimenterai mon formulaire serait la bienvenue Merci d'avance.
 

Pièces jointes

Dernière édition:
Bonjour
Est ce la colonne k qu'il faut traiter ou les colonnes A,B, C, D...
J'ai réessayé pour moi ça marche
plus de double clic le bouton de la feuille1 traite la colonne K
le bouton de la feuille 2 traite les cellules de a2 à d9
le nombre de ligne et de colonne étant contrôlé par la macro
quelques explications dans la macro "Feuil2_Bouton1_Cliquer"
A+ François
 

Pièces jointes

Dernière édition:
Bonjour
Est ce la colonne k qu'il faut traiter ou les colonnes A,B, C, D...
A+ François

En faite le but c'est d’obtenir la colonne K en rentrant les données ( du nombre de blocs, le nombre de lignes et de colonnes) dans le formulaire que j'ai commencé. Ou d’obtenir cette colonne avec une série de formule en ne rentrant que le noms des blocs , de lignes et de colonnes. Merci pour le temps que vous consacrez à mon problème.
 
Bonjour le fil, le forum, jean_jack, fanfan38

Une façon de faire (celle d'un confiné breton 😉)
VB:
Sub Création_Liste_Points()
Dim vArr() As String, Bloc, NB_LC, i&, j&
Bloc = InputBox("Nom Bloc?", "Bloc", 165702): NB_LC = InputBox("Ligne-Colonne?", "Bloc", "4-4")
NL = CLng(Split(NB_LC, "-")(0) * 1): NC = CLng(Split(NB_LC, "-")(1) * 1)
ReDim vArr(1 To NL, 1 To NC) As String
For i = LBound(vArr) To UBound(vArr)
For j = LBound(vArr, 2) To UBound(vArr, 2): vArr(i, j) = CStr(i) & "_" & CStr(j): Next j
Next i
k = 2
For i = LBound(vArr) To UBound(vArr)
For j = LBound(vArr, 2) To UBound(vArr, 2): Cells(k, "K") = Bloc & "_" & CStr(vArr(i, j)): k = k + 1
Next j
Next i
End Sub
NB: Lors de la saisie, il faut séparer dans l'InputBox, le nombre de ligne et colonne par un tiret, comme dans la valeur par défaut
4-4
 
Donc voir la feuille 2 du fichier que je viens de t'envoyer... et la macro
Feuil2_Bouton1_Cliquer
qui va avec...
A+ François

Bonjour Fanfan38, merci pour ta réponse mais en faite la réponse ne correspond pas vraiment à ce que je veux faire. Mon but c'est d'éviter de recopier toutes les données (nom des points ) à la main , sachant que je reçois le nom des points sur une fiche papier en fin de journée. Je voudrais donc à l'aide d'un formulaire ou d'un bouton rentrer le nom du blocs, le nombre de lignes et de colonnes pour que le formulaire puisse générer automatiquement le nom de tous les points du bloc et les insérer dans une colonne comme la colonne K . L'idéal serait de pouvoir générer les noms des points de tous les blocs en rentrant seulement le nom du point d'un seule blocs et en définissant le nombre de ligne et de colonne de tous les blocs réunis. Sachant qu'a l’horizontale les noms des blocs se construisent de la façon suivante : Nom bloc 2 = Nom bloc 1 + 500 et Nom bloc 3 = Nom bloc 2 + 500 ainsi de suite ..... et à la verticale Nom bloc 2 = Nom bloc 1 +1 et Nom bloc 3 = Nom bloc 2 +1 ainsi de suite ..

L'idée ça serait de rentrer dans le formulaire le nom d'un seul bloc , suivit du nombre de lignes dans tous les blocs et du nombre de colonnes dans tous les blocs et ainsi de générer le nom de tous les points dans tous les blocs dans la colonne dédiée.
 
Dernière édition:
Bonjour le fil, le forum, jean_jack, fanfan38

Une façon de faire (celle d'un confiné breton 😉)
VB:
Sub Création_Liste_Points()
Dim vArr() As String, Bloc, NB_LC, i&, j&
Bloc = InputBox("Nom Bloc?", "Bloc", 165702): NB_LC = InputBox("Ligne-Colonne?", "Bloc", "4-4")
NL = CLng(Split(NB_LC, "-")(0) * 1): NC = CLng(Split(NB_LC, "-")(1) * 1)
ReDim vArr(1 To NL, 1 To NC) As String
For i = LBound(vArr) To UBound(vArr)
For j = LBound(vArr, 2) To UBound(vArr, 2): vArr(i, j) = CStr(i) & "_" & CStr(j): Next j
Next i
k = 2
For i = LBound(vArr) To UBound(vArr)
For j = LBound(vArr, 2) To UBound(vArr, 2): Cells(k, "K") = Bloc & "_" & CStr(vArr(i, j)): k = k + 1
Next j
Next i
End Sub
NB: Lors de la saisie, il faut séparer dans l'InputBox, le nombre de ligne et colonne par un tiret, comme dans la valeur par défaut
4-4

Bonjour Staple 1600 ,merci pour ta réponse mais en faite la réponse ne correspond pas vraiment à ce que je veux faire. Mon but c'est d'éviter de recopier toutes les données (nom des points ) à la main , sachant que je reçois le nom des points sur une fiche papier en fin de journée. Je voudrais donc à l'aide d'un formulaire ou d'un bouton rentrer le nom du blocs, le nombre de lignes et de colonnes pour que le formulaire puisse générer automatiquement le nom de tous les points du bloc et les insérer dans une colonne comme la colonne K . L'idéal serait de pouvoir générer les noms des points de tous les blocs en rentrant seulement le nom du point d'un seule blocs et en définissant le nombre de ligne et de colonne de tous les blocs réunis. Sachant qu'a l’horizontale les noms des blocs se construisent de la façon suivante : Nom bloc 2 = Nom bloc 1 + 500 et Nom bloc 3 = Nom bloc 2 + 500 ainsi de suite ..... et à la verticale Nom bloc 2 = Nom bloc 1 +1 et Nom bloc 3 = Nom bloc 2 +1 ainsi de suite ..

L'idée ça serait de rentrer dans le formulaire le nom d'un seul bloc , suivit du nombre de lignes dans tous les blocs et du nombre de colonnes dans tous les blocs et ainsi de générer le nom de tous les points dans tous les blocs dans la colonne dédiée.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
109
Retour