aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

dn35

XLDnaute Occasionnel
Bonjour à tous !

Je planche actuellement sur un "formulaire" (en vérité un onglet excel) de saisie de données recueillies par les techniciens de maintenance lors de leur tour d'usine quotidien. Certaines données sont recueillies quotidiennement et d'autres une fois par semaine. Nous sommes en train d'informatiser tout cela pour automatiser les calculs. Mon problème est de réussir à partir de ce "formulaire" à incrémenter les différents tableaux de calculs répartis sur différents onglets.

Je vous joint le fichier sur lequel je travaille, je l'ai nettoyé de mes différentes tentatives désastreuses, je pense que cela sera plus parlant pour vous !
Merci d'avance aux XLDiens qui seront intéressés par le sujet !
Bonne journée à toutes et à tous !
 

Pièces jointes

  • tour d'usine maintenance.xlsm
    150.8 KB · Affichages: 94
  • tour d'usine maintenance.xlsm
    150.8 KB · Affichages: 123
  • tour d'usine maintenance.xlsm
    150.8 KB · Affichages: 112
G

Guest

Guest
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour,

Comme nous ne sommes pas ici pour faire des applications clef en main et que l'explication sur ton classeur se termine par
Le tout bien entendu sur la première ligne libre sous les données précédemment saisies (et c'est bien là mon problème !)

Je dirai simplement et en exemple:
Code:
Dim LigneLibre As Long
LigneLibre = Sheets("Compteurs").Cells(Rows.Count, 1).End(xlUp)(2).Row

ce que tu aurais trouvé sur le forum, en cherchant un peu.
a+
 

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour Hasco et merci

Ceci dit, je cherche sur le forum et je trouve ... j'en trouve même plusieurs, le tout étant de réussir à l'appliquer ... ce que je n'ai pas su faire bien entendu ... Je connais le fonctionnement du forum et loin de moi l'idée de demander quelque chose "clés en main", dans ce cas autant aller dans l'espace téléchargement. En attendant une réponse sur le forum, j'ai continué mes essais et j'ai un peu avancé mais ce n'est pas concluant ... Je pensais redéposer un fichier un peu plus abouti si j'arrive à avancer un peu.

merci pour ce cours de morale, je ferais plus attention la prochaine fois.
 
G

Guest

Guest
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Re,

post#1 à dit:
Je vous joint le fichier sur lequel je travaille, je l'ai nettoyé de mes différentes tentatives désastreuses, je pense que cela sera plus parlant pour vous !

Personnellement je préfère un fichier joint avec des tentatives même dites 'désastreuses' pourvu qu'il soit accompagné d'une question précise, que rien du tout.

A+
 

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Re-

dans ce cas; encore désolée, La prochaine fois je laisse mes brouillons ...
Ci-dessous le début du code sur lequel je tente de travailler. Mais lorsque j'essaye de le lancer pour le tester, il s'arrête dès la ligne
Code:
 .Range("C" & Nl).Value = Sheets("Relevés").Range("B6").Value   'Général CGE

Je continue à tester mais je galère (bien que ce soit le meilleur moyen d'apprendre ...). Si vous aviez quelques idées ?

Code:
Private Sub CommandButton2_Click()

 With Sheets("Compteurs")
    N1 = .Range("A1048576").End(xlUp).Row + 1 'Ligne que je vais renseigner
    
    .Range("A" & N1).Value = Sheets("Relevés").Range("A3").Value   'Date
    .Range("C" & Nl).Value = Sheets("Relevés").Range("B6").Value   'Général CGE
    .Range("D" & Nl).Value = Sheets("Relevés").Range("B12").Value   'Compteur débit vapeur cumulée
    .Range("E" & Nl).Value = Sheets("Relevés").Range("B13").Value   'Compteur d'eau adoucie alimentation chaudière
    .Range("F" & Nl).Value = Sheets("Relevés").Range("B14").Value   'Compteur alimentation eau de ville bâche chaudière
    .Range("G" & Nl).Value = Sheets("Relevés").Range("B15").Value   'Compteur de purge eau de surface chaudière
    .Range("H" & Nl).Value = Sheets("Relevés").Range("B17").Value   'Compteur eau Aéros
    .Range("I" & Nl).Value = Sheets("Relevés").Range("B19").Value   'Compteur alimentation eau de ville vers forage
    .Range("J" & Nl).Value = Sheets("Relevés").Range("B20").Value   'Compteur alimentation eau brut
    .Range("K" & Nl).Value = Sheets("Relevés").Range("B21").Value   'Compteur eau de forage vers usine
    
End With
End Sub

Ci-joint le fichier avec le premier code testé
 

Pièces jointes

  • tour d'usine maintenance.xlsm
    153.2 KB · Affichages: 65
  • tour d'usine maintenance.xlsm
    153.2 KB · Affichages: 75
  • tour d'usine maintenance.xlsm
    153.2 KB · Affichages: 69
Dernière édition:
G

Guest

Guest
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour,

Sans doute as-tu un message d'erreur!? en mettant Option explicit en haut de module tu aurais eu sûrement celui-ci:
'Variable non définie' à cause du 'L' minuscule au lieu du 1 dans
Code:
.Range("A" & Nl)

D'où l'interêt, surtout si l'on commence, de mettre Option Explicit en tête de module et de déclarer TOUTES ses variables.
A+
 
Dernière modification par un modérateur:

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

:eek: Alors là je suis encore plus honteuse !

Il m'a fallut un petit moment pour comprendre mais je ne sais pas comment je me suis débrouillée pour remplacer le 1 par un l dans la suite de mon code. En mettant Option Explicit en haut de mon module, ça fonctionne nickel ! Si j'ai bien compris son rôle, il me permettrait de déclarer des variables, de donner un nom à mes éléments ?

Je continue mon fichier en espérant pouvoir mettre une version aboutie bientôt pour clôturer ce fil.
Merci encore
 
Dernière édition:

sousou

XLDnaute Barbatruc
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour à tous

Le fichier joint, n'est qu'un début.
Je te propose une solution avec une feuille datas, dans laquelle tu n'a qu'a remplir les sources et les destinations des données.
en validant, il charge les contenus de relevé dans les feuilles et colonnes définis dans les datas.
L'avantage est de pouvoir faire évoluer facilement les tableaux
A compléter
 

Pièces jointes

  • sousou tour d'usine maintenance.xlsm
    160.7 KB · Affichages: 85

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour sousou

et merci pour le fichier, je regarde tout ça et j'essaye de voir ! En tout cas c'est une nouvelle astuce à exploiter !

Bonne fin de journée
 

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonsoir,

Voilà le premier jet d'un fichier presque abouti ... Merci encore à Sousou et à Hasco pour leur aide. Ce fichier peut sans doute être largement amélioré. Je garde la version de Sousou sous le coude afin de pouvoir l'étudier en particulier s'il permet de faire évoluer facilement mes tableaux ! En attendant nous allons pouvoir commencer à bosser avec cette version que je met en ligne au cas où elle pourrait aider quelqu'un.

Bonne soirée à tous
 

Pièces jointes

  • tour d'usine maintenance.xlsm
    153.4 KB · Affichages: 92
  • tour d'usine maintenance.xlsm
    153.4 KB · Affichages: 87
  • tour d'usine maintenance.xlsm
    153.4 KB · Affichages: 81

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour à tous,

J'ai un petit problème avec mon UF pour l'appoint de fioul sur le fichier joint. J'étais persuadée d'avoir réussi à mettre la date en format français dans le textbox (et c'est bien comme ça qu'elle apparait) mais lorsque je valide ma saisie et que les valeurs sont reportées dans l'onglet "Fioul", la date s'incrémente comme s'il s'agissait en réalité d'un format anglais ... j'essaye de m'expliquer. La date dans le textbox indique bien le 11/10/2013 mais lorsque la valeur est reportée sur l'onglet, elle indique 10/11/2013 ce qui fausse complètement le relevé. Je ne sais pas d'où peut provenir l'erreur, est-ce que quelqu'un a une idée pour me mettre sur la voie ? Pour le moment, les réponses que j'ai pu trouver sur les différents fils de discussion sont un peu compliquées pour mon niveau !

Merci d'avance !
Bonne journée
 

Pièces jointes

  • tour d'usine maintenance.xlsm
    153.7 KB · Affichages: 51
  • tour d'usine maintenance.xlsm
    153.7 KB · Affichages: 57
  • tour d'usine maintenance.xlsm
    153.7 KB · Affichages: 59

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

Bonjour Pierrot,

Magnifique cela fonctionne à merveille, je ne connaissais pas cette fonction, je n'ai plus qu'à aller m'informer et apprendre !!!
Merci

Bonne journée
@+
 

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

C'est encore moi,

Nous avons des relevés qui ne sont fait qu'une fois par semaine et d'autres chaque jour. En l'état, lorsque nous validons la saisie, la date vient s"incrémenter même dans les onglets où il n'y a pas de relevés. J'ai donc modifié mon code comme suit :

Code:
 N1 = Sheets("Compteurs").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner
    
    Sheets("Température eau aéros").Range("A" & N1).Value = Sheets("Relevés").Range("A3").Value   'Date
    Sheets("Température eau aéros").Range("B" & N1).Value = Sheets("Relevés").Range("E9").Value   'aller
    Sheets("Température eau aéros").Range("C" & N1).Value = Sheets("Relevés").Range("E10").Value   'retour
    
    Sheets("Fioul").Range("A" & N1).Value = Sheets("Relevés").Range("A3").Value   'Date
    Sheets("Fioul").Range("C" & N1).Value = Sheets("Relevés").Range("E6").Value   'Quantité de fioul
    
    If Sheets("Relevés").Range("B6") <> "" Then
    
    Sheets("Compteurs").Range("A" & N1).Value = Sheets("Relevés").Range("A3").Value   'Date
    Sheets("Compteurs").Range("C" & N1).Value = Sheets("Relevés").Range("B6").Value   'Général CGE
    Sheets("Compteurs").Range("D" & N1).Value = Sheets("Relevés").Range("B12").Value   'Compteur débit vapeur cumulée
    Sheets("Compteurs").Range("E" & N1).Value = Sheets("Relevés").Range("B13").Value   'Compteur d'eau adoucie alimentation chaudière
    Sheets("Compteurs").Range("F" & N1).Value = Sheets("Relevés").Range("B14").Value   'Compteur alimentation eau de ville bâche chaudière
    Sheets("Compteurs").Range("G" & N1).Value = Sheets("Relevés").Range("B15").Value   'Compteur de purge eau de surface chaudière
    Sheets("Compteurs").Range("K" & N1).Value = Sheets("Relevés").Range("B17").Value   'Compteur eau Aéros
    Sheets("Compteurs").Range("H" & N1).Value = Sheets("Relevés").Range("B19").Value   'Compteur alimentation eau de ville vers forage
    Sheets("Compteurs").Range("I" & N1).Value = Sheets("Relevés").Range("B20").Value   'Compteur alimentation eau brut
    Sheets("Compteurs").Range("J" & N1).Value = Sheets("Relevés").Range("B21").Value   'Compteur eau de forage vers usine
        
    Sheets("Traitement aéro").Range("A" & N1).Value = Sheets("Relevés").Range("A3").Value   'Date
    Sheets("Traitement aéro").Range("D" & N1).Value = Sheets("Relevés").Range("B9").Value   'Bezcal 100
    Sheets("Traitement aéro").Range("F" & N1).Value = Sheets("Relevés").Range("B10").Value   'Biocide
    
    End If

Cela fonctionne par contre, lorsque je fais le test naturellement dans les onglets remplis chaque jour, la dernière ligne remplie est remplacée par les nouvelles valeurs. je pense que cela vient de ma ligne

Code:
N1 = Sheets("Compteurs").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner

Placée en début de code mais je ne sais pas trop comment résoudre le problème ... Pouvez-vous m'aider à nouveau ?

Merci d'avance !
Bonne journée
 

Pièces jointes

  • tour d'usine maintenance.xlsm
    154.9 KB · Affichages: 83
  • tour d'usine maintenance.xlsm
    154.9 KB · Affichages: 97
  • tour d'usine maintenance.xlsm
    154.9 KB · Affichages: 104

dn35

XLDnaute Occasionnel
Re : aide VBA : incrémenter un tableau à partir d'un formulaire de saisie

j'ai finalement modifié mon code comme suit mais je ne suis pas certaine que ce soit la solution la plus simple !

Code:
N1 = Sheets("Compteurs").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner
 N2 = Sheets("Température eau aéros").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner
    N3 = Sheets("Fioul").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner
    N4 = Sheets("Traitement aéro").Range("A1048576").End(xlUp).Row + 1   'Ligne que je vais renseigner

Mais pour l'instant cela à l'air de fonctionner ... A suivre

Bonne journée
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa