Premiers pas en VBA

kayss

XLDnaute Junior
Bonjour à tous et à toutes.

Voila je pense comme beaucoup pouvoir trouver ici les réponses à ma multitude de question concernant Excel et le VBA.
Je suis actuellement en train d'essayer d'en réaliser une dans le cadre de mon travail et je pioche au fur et a mesure de mes lectures les éléments de réponses que vous avez pu fournir (et vous en remercie).

Pour commencer je décris succinctement mon projet (je rappelle que je suis complètement débutant).
J'utilise un userform comme menu de départ à la création de ce que j'appellerai une Fiche technique Produit (domaine agroalimentaire) (voir pièce jointe).

Question 1 : peut on en utilisant une combo box (ou autre…) imposer un choix pour ‘produit’ sans passer par la création d’une liste sur l’une des feuille Excel ?
Question 2 : peut on imposer au programme, une foi que l’on a cliqué sur ‘valider’ d’enregistrer automatiquement la fiche nouvellement créée sous un le code présent en feuille 1 cellule ‘H1’.

Je m’arrêterai là pour l’instant, non pas que je pense que vous ne puissiez répondre à mes autres interrogations mais plutôt pour que je puisse digérer correctement vos réponses.

Merci d’avance pour touts vos suggestions.
 

Pièces jointes

  • creation fiche technique 2009 bis.zip
    31.3 KB · Affichages: 62
  • creation fiche technique 2009 bis.zip
    31.3 KB · Affichages: 64
  • creation fiche technique 2009 bis.zip
    31.3 KB · Affichages: 62

PIEDEPLOMB33

XLDnaute Junior
Re : Premiers pas en VBA

Re

Ci-joint version rectifié en fonction de ton dernier post.
Les cellules H23 à H28 et E23 à E28 représentent 12 cellules alors qu'il n'y a que 11 TextBox(s) au niveau des caractéristiques physico chimique.

A te lire pour rectifier si besoin

@+
 

Pièces jointes

  • creation fiche technique 2009V2.zip
    43.1 KB · Affichages: 31
  • creation fiche technique 2009V2.zip
    43.1 KB · Affichages: 30
  • creation fiche technique 2009V2.zip
    43.1 KB · Affichages: 34

kayss

XLDnaute Junior
Re : Premiers pas en VBA

Bonjour au forum , fil et a Piedeplomb33 que je torture en ce moment... :eek:

Merci pour ta réponse, malheureusement pour moi ca va beaucoup trop vite je n'arrive pas à comprendre l'ensemble des modifications que tu me presente. Meme si elles repondent à mes demandes. toutefois je n'ai pas exactement ce que je voudrais, j'aimerai que les elements enregistré dans 'base de données' le soient sur une ligne dans des cellules séparées de preference. ci joint les deux fichiers pour explication.



Merci encore a tous
 

Pièces jointes

  • creation fiche technique 2009 v4.zip
    42.6 KB · Affichages: 21
  • base de donnees.zip
    2.3 KB · Affichages: 21
  • creation fiche technique 2009 v4.zip
    42.6 KB · Affichages: 23
  • base de donnees.zip
    2.3 KB · Affichages: 23
  • creation fiche technique 2009 v4.zip
    42.6 KB · Affichages: 23
  • base de donnees.zip
    2.3 KB · Affichages: 26

kayss

XLDnaute Junior
Re : Premiers pas en VBA

En faite pour tout te dire ma premier demande est arrivée trop tot :p je n'ai pas pris le temp de regarder qu'elles étaient les informations que je voulais mettre dans la base de données. AU final il n'y a que celles indiquées dans le fichier 'base de données' qui m'intéresse.

Desoler de t'avoir fait bosser dans une direction inutile :p

amicalement
 

kayss

XLDnaute Junior
Re : Premiers pas en VBA

Bonjour à tous

Bon après moultes essais je n'arrive décidement pas à adapter vos réponses à mon projet. Je me permet donc de vous relancer en y joignant les deux fichiers qui nous interessent pour ce probleme.

Un petit rappel toutefois de mon problème:

Je pars d'un fichier excel avec un Userforme que je dois completer afin de créer une fiche technique (jusque là tout va bien ca fonctione!).
Lorsque je valide, j'aimerais que les informations saisies sur ma fiche technique alimentent une base de données presente dans un autre classeur (fiche de controle produit fini/ table).

Merci à tous pour votre implication
 

Pièces jointes

  • Fiche Technique 2009 v5.zip
    22.7 KB · Affichages: 15
  • Fiche controle Produit fini.zip
    15.4 KB · Affichages: 19
  • Fiche Technique 2009 v5.zip
    22.7 KB · Affichages: 19
  • Fiche controle Produit fini.zip
    15.4 KB · Affichages: 16
  • Fiche Technique 2009 v5.zip
    22.7 KB · Affichages: 14
  • Fiche controle Produit fini.zip
    15.4 KB · Affichages: 18

kjin

XLDnaute Barbatruc
Re : Premiers pas en VBA

Bonsoir,
Avec ce que je comprends
Code:
Private Sub CommandButton1_Click()
Dim DerLigne As Long, sFichier As String, sChemin As String
'...
sFichier = "Fiche controle Produit fini.xls"
sChemin = ActiveWorkbook.Path & "\" & sFichier
If Dir(sChemin) = "" Then
    MsgBox "Le fichier base de donnees est inexistant ;" _
    & vbCrLf & "Sauvegarde des caractéristiques impossible.", vbCritical, "Vérification"
Else
    Workbooks.Open sChemin
    With Sheets("Table")
        DerLigne = .Range("F65000").End(xlUp).Row
        .Range("F" & DerLigne + 1) = TextBox23
        .Range("I" & DerLigne + 1) = TextBox26
        .Range("R" & DerLigne + 1) = TextBox25
        .Range("U" & DerLigne + 1) = TextBox24
    End With
    ActiveWorkbook.Save
    ActiveWindow.Close
End If
'...
End Sub
A+
kjin
 

kayss

XLDnaute Junior
Re : Premiers pas en VBA

Merci Kjin mais je n'y arrive pas....:confused:

serait ce parce que ma base de donnée ne s'appelle pas "base de données" mais plutot "Table"? et qu'en plus elle se trouve dans le classeur "fiche de controle produit fini" en feuille 2 ?


Je suis perdu la....

:(
 

kjin

XLDnaute Barbatruc
Re : Premiers pas en VBA

bonsoir,
Ne lis tu donc pas les réponses ?!
Bonsoir,
Avec ce que je comprends
Code:
Private Sub CommandButton1_Click()
Dim DerLigne As Long, sFichier As String, sChemin As String
'...
sFichier = "[COLOR="Blue"]Fiche controle Produit fini.xls[/COLOR]"
sChemin = ActiveWorkbook.Path & "\" & sFichier
If Dir(sChemin) = "" Then
    MsgBox "Le fichier base de donnees est inexistant ;" _
    & vbCrLf & "Sauvegarde des caractéristiques impossible.", vbCritical, "Vérification"
Else
    Workbooks.Open sChemin
    With Sheets("[COLOR="Blue"]Table[/COLOR]")
        DerLigne = .Range("F65000").End(xlUp).Row
        .Range("F" & DerLigne + 1) = TextBox23
        .Range("I" & DerLigne + 1) = TextBox26
        .Range("R" & DerLigne + 1) = TextBox25
        .Range("U" & DerLigne + 1) = TextBox24
    End With
    ActiveWorkbook.Save
    ActiveWindow.Close
End If
'...
End Sub
A moins qu'en plus le fichier ne se trouve pas dans le répertoire courant...
A+
kjin
 

Bebere

XLDnaute Barbatruc
Re : Premiers pas en VBA

bonjour Kaiss,Kjin,Pied de plomb
en regardant le code il y a embrouille avec les classeurs
le classeur ou s'exécute le code c'est thisworkbook
le classeur que l'on ouvre devient activeworbook
adapte le nom de la feuille dans la ligne
With ActiveWorkbook.Sheets("Table")
cela devrait aller
une bonne habitude éviter les espaces dans les noms de fichiers
(écrire FicheControleProduitFini.xls ou Fiche_controle_Produit_fini.xls)

Private Sub CommandButton1_Click()
Dim DerLigne As Long, sFichier As String, sChemin As String
'...
sFichier = "Fiche controle Produit fini.xls"
sChemin = ThisWorkbook.Path & "\" & sFichier
If Dir(sChemin) = "" Then
MsgBox "Le fichier base de donnees est inexistant ;" _
& vbCrLf & "Sauvegarde des caractéristiques impossible.", vbCritical, "Vérification"
Else
Workbooks.Open sChemin
With ActiveWorkbook.Sheets("Table")
DerLigne = .Range("F65000").End(xlUp).Row
.Range("F" & DerLigne + 1) = TextBox23
.Range("I" & DerLigne + 1) = TextBox26
.Range("R" & DerLigne + 1) = TextBox25
.Range("U" & DerLigne + 1) = TextBox24
End With
ActiveWorkbook.Save
ActiveWindow.Close
End If
'...
End Sub

à bientôt
 

kjin

XLDnaute Barbatruc
Re : Premiers pas en VBA

Re, bonsoir Bebere :)
...en regardant le code il y a embrouille avec les classeurs...
A mon sens non :confused:
...serait ce parce que ma base de donnée ne s'appelle pas "base de données" mais plutot "Table"? et qu'en plus elle se trouve dans le classeur "fiche de controle produit fini" en feuille 2..
Par contre là, je me pose la question :D
A+
kjin
 

kjin

XLDnaute Barbatruc
Re : Premiers pas en VBA

Re,
J'ai repris ton fichier (Le classeur "Fiche controle Produit fini.xls" doit se trouver dans le même répertoire)
Une chose m' intrigue : tu crées une copie de ton classeur pour sauvegarder tes fiches, donc tu copies les macros et le formulaire par la même occasion !
ne serait ce pas plus rationnel de ne sauvegarder que la fiche dans un nouveau classeur vierge ?
A+
kjin
 

Pièces jointes

  • Kayss.zip
    24.6 KB · Affichages: 27
  • Kayss.zip
    24.6 KB · Affichages: 24
  • Kayss.zip
    24.6 KB · Affichages: 26

kayss

XLDnaute Junior
Re : Premiers pas en VBA

Bonjour le Fil et bonjour à tous

Merci pour vos réponses,
j’ai toutefois un problème : Les informations incrémentées dans ma table n’étaient pas dans les bonnes colonnes, j’ai voulu corriger cela en modifiant mon code (avec les bonnes colonnes) et en y a joutant deux informations supplémentaires. Cela fonctionne sauf que ma base de donnée ne s’alimente plus les nouveaux éléments écrasent les anciens dans ma table à la ligne 13.
Pour qu’elles raisons je ne saisi pas.

Voici les elements que j’ai voulu modifier si vous pouviez m’aidez une nouvelle foi.
Merci

TextBox 23 en J
TextBox 24 en Y
TextBox 25 en M
TextBox 35 en S
ComboBox 1 en B
TextBox 2 en C
 

Pièces jointes

  • Fiche controle Produit fini.zip
    16.3 KB · Affichages: 20
  • Fiche Technique 2009 v5.zip
    23 KB · Affichages: 20
  • Fiche controle Produit fini.zip
    16.3 KB · Affichages: 22
  • Fiche Technique 2009 v5.zip
    23 KB · Affichages: 16
  • Fiche controle Produit fini.zip
    16.3 KB · Affichages: 14
  • Fiche Technique 2009 v5.zip
    23 KB · Affichages: 20

kjin

XLDnaute Barbatruc
Re : Premiers pas en VBA

Bonjour,
Le fichier destination, celui que tu fournis donc, se nomme "Fiche controle Produit fini.xls"; dans ton classeur départ, "Fiche Technique 2009 v5", tu notes
Code:
'...
If Dir(ActiveWorkbook.Path & "\[COLOR="Red"]Table.xls[/COLOR]") = "" Then
'...
Je constate que tu fais fi des modifications qui te sont proposées et qui fonctionnent correctement, je précise ! :mad:
D'autres t'apporteront peut-être leur aide, pour ma part j'en reste là
kjin
 

Statistiques des forums

Discussions
312 164
Messages
2 085 872
Membres
103 007
dernier inscrit
salma_hayek