Dans une feuille "Facture" d'un classeur "Factures 2003", j'ai en colonne IM
à IU une base de données "clients" (nommée 'tableClients') et construite
selon le schéma suivant:
IM = numéro, IN = alias, IO = Nom et prénom, IP = adresse1, IQ = adresse2,
IR = code postal, IS = localité, IT = pays et IU = Code TVA.
Lors de l'établissement d'une facture, le client est appelé par une zone de
liste modifiable.
Lorsqu'il s'agit d'un nouveau client, j'aimerais un code qui me renvoie
dans la base (sélectionner IM7, par exemple), qui ouvre le menu
Données/Grille puis "Nouvelle" et introduise dans le premier champ un
nouveau numéro défini par la formule =MAX(IM$2:IM65536)+1.
Il n'y aurait plus ainsi qu'à introduire les nouvelles données dans la
grille pour les autres informations
Merci du coup de main.
Jean
Tu peux créer une macro qui va rajouter ton nouveau client.
Sub Ajout()
Range("IM60000").Select
Selection.End(xlUp).Select
Selection.EntireRow.Insert
ActiveCell.FormulaR1C1 = InputBox("Numéro")
ActiveCell.Offset(0, 1).FormulaR1C1 = InputBox("alias")
ActiveCell.Offset(0, 1).FormulaR1C1 = InputBox("nom
prénom")
ActiveCell.Offset(0, 1).FormulaR1C1 = InputBox
("adresse1")
...
End Sub
Et relier ta macro à un bouton.
Camille
>-----Message d'origine-----
>.
>
En supposant que la BdD débute en ligne 2 (la ligne 1 étant réservée aux
étiquettes de colonne, numéro, alias, etc...)
Sub zaza()
With Sheets("Facture")
.Activate
SendKeys "%DG%N" & [IN65536].End(xlUp).Row
.ShowDataForm
End With
End Sub
ChrisV
"Jean Martin" <GHA.R...@skynet.be> a écrit dans le message de news:
3ed1f6c5$0$26712$ba62...@reader1.news.skynet.be...
Merci pour la proposition. Je l'ai d'abord retranscrite telle quelle. Mais
le résultat de chaque inputbox écrasait le résultat précédent.
J'ai dû , pour chaque ActiveCell, construire une ligne
"Offset(0,1).Range("A1").Select" et une ligne: "FormulaR1C1 =
InputBox(.....). Ca ressemble à une litanie, mais ça marche.
Merci.
"Ellimac" <Ellimac_cremelier@hotùail.com> a écrit dans le message de
news:202201c32382$2fa99770$a001...@phx.gbl...
Bonjour Chris,
J'ai essayé ta proposition. Mais telle qu'elle est, elle bloque dans
l'exécution, sur ShowDataForm.
Je ne parviens pas à ouvrir la Grille.
Peut-être as-tu une solution?
A+
Jean
"ChrisV" <chr...@wanadoo.fr> a écrit dans le message de
news:OwlmwS4I...@tk2msftngp13.phx.gbl...
Jean Martin a écrit:
Humm... testée sous XP, no problemo...
Message ou numéro d'erreur ?
ChrisV
"Jean Martin" <jean....@pandora.be> a écrit dans le message de news:
RgvAa.21010$1u5....@afrodite.telenet-ops.be...
ChrisV a écrit:
2- ajouter dans la proc et au début :
Application.DisplayAlerts = False
3- nommer la plage des données : "Base_de_Données"
(nécessaire quand la plage ne commence pas en A1)
la conjugaison des 3 solutions résoudra assurement les
problemes !!!
@+
@+
>-----Message d'origine-----
>.
>
Voici le message
Erreur d'exécution '1004'
La méthode ShowDataForm de la classe Worksheet a échoué
Un clic sur "débogage" jaunit .ShowDataForm
Jean