Se connecter avec
S'enregistrer | Connectez-vous

pb de remplissage de tableau sur excel

Dernière réponse : dans Programmation

bonjour a tous

voila pour mon travail je dois creer un programme de traitement des reclamations client. Pour commencer j'ai creer une userform avec differentes textbox a remplir. maintenant je voudrai que cette userform se lance a l'ouverture du fichier (1er probleme).
ensuite j'ai creer un bouton de commande quand on clique dessus les information saisi dans les differentes textbox se place a des colonne bien precise dans un tableau (jusque la tout vas bien) le seul probleme c'est que a chaque fois que je relance la macro les donné rentré efface les precedente parcequ'elle se mette dans les meme case. je voudrai savoir comment faire pour qu'elle s'enregistre a la ligne d'apré et comment enregistrer le document automatiquement a la fermeture de la macro.
voila merci par avance pour vos reponse que j'espere rapide.
mathieu

Autres pages sur : remplissage tableau excel

Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

Pour lancer une macro au démarrage de Excel, merci d'utiliser la recherche sur le forum, c'est une demande récurrente.

Pour savoir enregistrer le document, consulter l'aide de VBA/Excel : méthode Save de l'objet Workbook.

Pour choisir la ligne où enregistrer les données, c'est plus délicat et cela dépend des données d'une part et de la façon dont tu procèdes d'autre part. Merci de publier une partie du code concerné.

Pour savoir comment publier ton code, merci de consulter les règles

merci d'avoir repondu rapidement et excusez moi d'avoir oublié de recherché dans le forum mais c'est la premiere fois que je me sert d'un forum.
j'ai aussi oublié de preciser que c'est aussi la premiere foi que je programme.

donc voici une parti du code:

  1. Private Sub CommandButton1_Click()
  2.  
  3. [reclamation!e5] = ComboBox15 & " " & ComboBox14 & " " & ComboBox13
  4. [reclamation!f5] = ComboBox10 & " " & ComboBox11 & " " & ComboBox12
  5. [reclamation!g5] = ComboBox9 & " " & ComboBox8 & " " & ComboBox7
  6. [reclamation!c5] = TextBox2
  7. [reclamation!b5] = TextBox6
  8. [reclamation!j5] = TextBox3
  9. [reclamation!k5] = ComboBox16
  10. [reclamation!h5] = TextBox4
  11. [reclamation!i5] = TextBox5
  12. [reclamation!l5] = TextBox7
  13. [reclamation!d5] = TextBox8
  14.  
  15. End Sub


les données qui sont rentrées dans les differentes textbox sont du texte
comme vous pouvez le remarquer j'atribu une case a chaque textbox. mais je voudrais que cette case change d'une ligne (pas d'une colone) a chaque fois que j'appui sur le boutton.
merci de laisseraussi quelque conseil pour ameliorer ma facon de programmer si vous en avez.
je veux vraiment apprendre.
merci
Expert Programmation

wahoo !


Citation :
Pour choisir la ligne où enregistrer les données, c'est plus délicat

Pourquoi ? Eh, parce qu'il va falloir chercher cette ligne :

L'algo:
Définir une chaine de caractères r Dim r As String

A partir de la cellule E5, Range("E5")
Chercher vers le bas .. xlDown
.. la dernière cellule contiguë non vide .End()
Considérer la valeur de sa ligne Row
Y ajouter 1 + 1
Transformer le tout en chaîne de car. CStr()
Mettre le résultat dans r r =

Considérant la cellule "E" x r Range("E" + r)
La valeur de la cellule devient .Value =
Ce que tu veux bien y mettre ComboBox15.Text & " " & ComboBox14.Text & " " & ComboBox13.Text


En VB :
  1. Private Sub CommandButton1_Click()
  2. Dim r As String
  3. r = CStr(Range("E2").End(xlDown).Row + 1)
  4. Range("E" + r).Value = ComboBox15.Text & " " & ComboBox14.Text & " " & ComboBox13.Text
  5. ' ..
  6. End Sub


Mais comment ai-je fais ?

Je sais utiliser Excel sans macro (<- Important !)
J'ai démarré l'enregistreur de macro
J'ai cliqué sur E5
J'ai appuyé sur les touches [CTRL+FlecheBas]
J'ai arrêté l'enregistreur de macro.
J'ai lu ce qu'a enregistré l'enregistreur :

  1. Range("E5").Select
  2. Selection.End(xlDown).Select


J'y apprends que considérer la cellule E5 s'écrit
Range("E5")
et que chercher la dernière cellule se fait grâce à la fonction
End()

Le reste c'est un peu d'habitude.

A toi maintenant !

(Et arrête de me vouvoyer..)
Lassé par la pub ? Créez un compte