Comment metre un enregistrement a la ligne

cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009 - 4 juin 2008 à 18:19
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 6 juin 2008 à 00:33
bonjour,
je voudrait savoir si quel qu un pourait m'aider parce ce que je n'arrive pas a metre a la ligne met enregistrement que je fait dans une userform dans une feuille exel.
merci

<!-- / message -->

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 juin 2008 à 18:45
Salut
Le VB de Excel est du VBA, pas du .Net
Catégorie modifiée

"je n'arrive pas a metre a la ligne met enregistrement" : traduction ? "mes enregistrements" ?
Enregistrement de quoi ? dans quoi ? Fichier ? Base de données ? qu'as-tu écris ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
4 juin 2008 à 18:49
je n 'arrive pas a metre mes enregistrement a la ligne dans une base de donne sur une feuille exel je n 'arrive qu'a saisir qu un seul enregistremt
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 juin 2008 à 19:00
Base de donnée, c'est vaste ...

Eventuellement, ajoute un vbCrLf dans ta chaine :
   "première ligne" & vbCrLf & "deuxième ligne"

En mode saisie, il faut taper au clavier Alt-Entrée

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
4 juin 2008 à 19:01
Bonjour Jack, et inco13,

Comme Jack le fait remarquer, tu restes absolument pas clair... Il faut bien préciser les choses point par point, et le plus simplement possible (avec le moins de détails inutiles pour améliorer la compréhension).

Pour toi, que signifie "enregistrement" ?
- une cellule d'une feuille Excel ?

Ensuite, que cherches-tu à faire ?
- Ecrire qlq chose dans des cellules successives ?
- Ecrire qlq chose dans une seule cellule avec un saut de ligne ?

Amicalement,
Us.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
4 juin 2008 à 19:07
 je suis en trein de faire un formullaire contenant plusieur champ,  ce que je souhaiterait c'est la programation en vba qui me permettra de revenir a la ligne dans ma base de donnee pour que je puisse saisir d'autre enregistrement da   ns mon formulaire qui se rajouteront a ma base de donne.
merci
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 juin 2008 à 02:18
La clarté, ce n'est pas ton fort...
Tu n'as pas répondu à ce que te demandait us_30 (salut)

As-tu un bout de code qui ne fonctionne pas ?

Si tu veux créer un saut de ligne dans une cellule, utilise vbLf qui n'affichera pas un petit carré comme le ferait vbCr ou vbCrLf.

Si tu veux sauter carrément à la cellule suivante, il faudrait alors voir ton code pour pouvoir t'aider. En principe, tu dois garder en mémoire dans une variable, la ligne sur laquelle tu inscris tes données et tu incrémentes cette variable pour chaque enregistrement...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
5 juin 2008 à 20:19
bonjour,
desole si tu ne comprend pas trop ce que j essai de t' expliquer c'est pour cela que je t'envoi mon le code du bouton valider de mon formulaire en esperant que tu comprenent. je souhaiterai que lorsque je clique sur le bouton valider cettte enregistrement ce met a la suite du precedent dans la base de donner.
merci  

code :

Private Sub valider_Click()
nom_clt.SetFocusIf nom_clt "" Or prenom_clt "" Or adresse_clt = "" Or cp_clt = "" Or ville_clt = "" Or classe = "" _ Or destination "" Or adulte "" Or nourisson = "" Or enfant = "" Then
  reponse = MsgBox("Vous n'avez pas remplis certaines informations!", vbCritical, "ATTENTION")
 ElseIf nom_clt <> "" And prenom_clt <> "" And adresse_clt <> "" And cp_clt <> "" And ville_clt <> "" And destination <> "" And classe <> "" And adulte <> "" _
 And nourisson <> "" And enfant <> "" Then
 
 Range("nom_clt") = "nom_clt"
 Range("prenom_clt") = "prenom_clt"
 Range("adresse_clt") = "adresse_clt"
 Range("cp_clt") = cp_clt
 Range("ville_clt") = ville_clt
 Range("destination") = destination
 Range("classe") = classe
 Range("adulte") = adulte
 Range("enfant") = enfant
 Range("nourisson") = nourisson
 End If


client.Hide
End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 juin 2008 à 23:28
J'y vois 2 problèmes.

Le premier n'est pas vraiment un problème, mais plus une amélioration de la condition.
Tu vérifies si chaque champ est vide avec un OR, ce qui est bien. Donc, si un est vide tu affiches le message. C'est le ElseIf qui ne sert à rien, puisque déjà vérifié dans le If. Si un des champ est vide, on affiche le message, autrement ils sont tous remplis, non ?If nom_clt "" Or prenom_clt "" Or adresse_clt = "" Or cp_clt = "" Or _    ville_clt "" Or classe ""  Or destination = "" Or adulte = "" Or _    nourisson "" Or enfant "" Then
          reponse = MsgBox("Vous n'avez pas remplis certaines informations!", _
                                          vbCritical, "ATTENTION")
Else  'sans aucune condition
    'le reste de ton code
End If

Le 2e point est plus un problème...
Tu utilises des noms de plages dans tes Range(...)
Il faut plutôt y aller avec les colonnes que tu dois connaître et les lignes qui seraient une variable qui s'incrémente. De plus, tu écris dans ce Range une valeur entre guillemets qui ne sera rien d'autre que ce texte entre guillemets, et non pas le contenu d'une variable.

Dans cette ligne

Range("nom_clt") = "nom_clt"

J'imagine que "nom_clt" est le nom d'une plage préalablement définie et que
"nom_clt"
  est le nom d'une variable... Est-ce bien ça ?

Si oui, il faudrait enlever les guillemets autour de la variable et utiliser un Range comme
Range("A" & Ligne) = nom_clt

Range("B" & Ligne) = prenom_clt

...

Pour connaître la valeur de Ligne, tu écris ceci
Ligne = Cells(Rows.Count, "A").End(xlUp).Row + 1  'première ligne vide en A
avant de remplir les cellules

Est-ce que ça t'éclaire un peu ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
6 juin 2008 à 00:24
Bonsoir MPi,

On peut également continuer avec une plage nommé, en se déplaçant à l'interieur. Pour cela, on utilise ITEM...

Voici un petit exemple de code :

Sub Macro1()



' Se déplacer dans une plage nommé en VBA



' - A partir d'excel nommé une plage, avec :
' - Insertion>Nom>Définir = choisir une plage (par ex. toute la colonne A)



' => utiliser la propriété Item de Range



' Exemple : Moi vaut la plage A$:A$
' et on désigne la 4ième case avec Item



Range("Moi").Item(2).Select




' Dans le cas d'une plage à deux dimension, Item(ligne,colonne)
   
End Sub



Pour le reste, je pense la même chose...


Amicalement,


Us.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 juin 2008 à 00:33
Salut us_30,
Toujours bon à savoir... En fait, je n'utilise jamais de noms définis parce que j'ai toujours des problèmes de liaisons (nom existant à écraser ou non...) quand les pages sont collées sur d'autres fichiers, en plus du redimensionnement... mais bon, c'est une technique qui est tout de même utilisée et c'est bon de savoir comment jouer avec ces plages...

Je vais essayer de m'en rappeler quand arrivera le moment de travailler avec ceux-ci...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous