rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Débutante VBA, macro Excel/Word

Posté par EmieCub, le vendredi 1 avril 2005 à 11:39:20
Bonjour,

Je suis débutante un VBA et je souhaite créer deux macros, pour usage professionnel :
- La 1ère me permettrait depuis excel de copier une plage de cellules vers un document word existant. J'ai bien déjà passé quelques jours dessus à tenter moultes manipulations, mais sans résultat!
- Pour la seconde, je souhaiterais pouvoir créer une macro qui, grâce à un bouton, copierait définitivement (pour archivage) les données enregistrer sur une feuille sur une autre feuille à la suite des archivages précédents (j'espère être à peu près claire).

Concernant la 1ère macro, voilà ma situation :
1- J'ai une feuille sous excel (Préparation commande) depuis laquelle je souhaite copier les données situées dans les cellules de la plage C7:G43.
2- J'ai un document word (BON DE COMMANDE MODELE), sur lequel je souhaite coller la plage de cellules.
Comment faire ?

Pour la 2nde macro :
1- Sur le même classeur excel, j'ai une feuille (Préparation de commande) sur laquelle je saisis des données sous forme de tableau et une autre feuille (Archives) sur laquelle je souhaiterais pouvoir coller ces enregistrements les uns à la suite des autres.
2- En fait, il s'agit sur la feuille (Préparation commande) de saisir manuellement les références (quantités, fournisseurs...). Grâce à la première macro, le bon de commande serait générer sous word et la feuille (Préparation Commande) servirait à chaque nouvelle commande. Et je souhaiterais trouver une macro qui me permettrait de copier ces enregistrements dans la seconde feuille, les uns à la suite des autres (pour archiver les données saisies.
Est-ce possible ? Et comment faire ?

Je remercie d'avance celui(ceux) qui m'eclairera(ont) sur ces points! Je ne maîtrise pas encore VBA et les macros pour m'en sortir seule et je patauge bien, malgré les aides que l'on peut trouver en ligne!!!
Encore merci!

Emilie

PS : j'en profite juste pour rajouter une question qui me titille : est-il possible d'affecter plusieurs macros à un seul bouton??
Configuration: Excel/Word 2000
Répondre à EmieCub  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
EmieCub, le vendredi 1 avril 2005 à 15:32:48
Rebonjour,
C'est juste pour indiquer que je suis parvenue à régler le problème de ma première macro. Victoire!
Je suis toujours sur la 2nde ; si une bonne âme voit une solution, Merci d'avance!
Emilie
Répondre à EmieCub

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
DestyNov@, le vendredi 1 avril 2005 à 16:22:23
Salut =)

juste comme ça, entre parenthèse on va dire, Excel n'est pas terrible pour gérer des données telles que des prépa de commandes. cela devient vite une usine à gaz, et l'on trouve très rapidement les limites d'excel. Mais ceci dit, tu peux librement continuer ton appli sur Excel =)

alors, pour la 1è macro, tu saisis les données directement dans les cellules à la mano ? Le mieux est de faire une "user form" avec tous les champs à remplir, de les stocker dans des variables, de les transmettre au fichier Word puis de les enregistrer dans la seconde feuille du classeur excel. c'est plus joli, plus pratique, peut-être un peu + dur, mais plus satisfaisant qd tu auras fini =)

voila ++
Répondre à DestyNov@

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le vendredi 1 avril 2005 à 17:34:21
Bonjour EmieCub,

En supposant que :
- quand tu lances ta macro, ta feuille active est celle dans laquelle tu fais ta saisie,
- ta feuille d'archives s'appelle "Archive"
- la plage que tu veux y copier est (C7:G43), et que tu veux la copier juste en dessous de l'archivage précédent,
    NomFeuille=ActiveSheet.Name
    Application.ScreenUptating = False
    Range("C7:G43").Copy
    With Sheets("Archive")
        .Activate
        LigDispo = .Range(Cells(65536, 1), Cells(65536, 1)).End(xlUp).Row + 1
        .Range(Cells(LigDispo, 1), Cells(LigDispo, 1)).Select
    End With
    ActiveSheet.Paste
    Sheets(NomFeuille).Activate
    Application.ScreenUptading = True
Est-ce que c'est ça ?
Armojax.
Répondre à Armojax

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bienvenuraph, le vendredi 1 avril 2005 à 19:33:18
Cher(e)s ami(e)s,
salut,
j'ai un problème sérieux dans la compréhension des algorithmes de progranmmation et voudrai avoir une orientation sur un site où je pourrai trouver des amples informations dudit cours
Merci anticipativement.
Répondre à bienvenuraph

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
EmieCub, le jeudi 7 avril 2005 à 11:48:15
Bonjour,

Je voulais d'abord remercier DestyNov@ et Armojax pour leur aide et leurs précieux conseils!
J'ai choisi de suivre l'idée de DestyNov@, c'est à dire de faire une userform pour saisir les données de ma commande.

Jusque là, je m'en sors pas trop trop mal grâce aux sites consacrés à excel et aux forums! Mais là je reviens vers vous parce que je bloque sur un truc qui doit certainement etre très simple!!

J'ai mon UserForm1 à l'interieur duquel j'ai desTextBox (j'en ai mis 6 au total), ainsi que 2 boutons pour valider, et un bouton pour fermer.
Je suis parvenue à renvoyer les 4 premiers textbox dans ma feuille excel comme je le souhaitais grâce au premier bouton pour valider ! Et oui, j'ai gagné cette bataille, mais pas encore tout à fait la guerre!!

Mon souci est le suivant :
Je souhaite grâce au second bouton pour valider (son nom = Valider), renvoyer les données qui ont été saisies vers :
- Pour la textBox4 : vers la cellule A20
- Pour la textBox5 : vers la cellule C20
Mais je voudrai également qu'en clikan sur mon Valider, les données soit transférés certes, mais que les TextBox soit aussi effacé! Comme ça je peux resaisir des données dans ces deux textBox, rappuyer sur Valider (qui renverra les données en A21 et C21), et ainsi de suite...

Pour le bouton qui ferme l'userform, c'est bon, ça, j'ai réussi! Je sais c'etait le plus simple, mais ca fait tellement du bien de vaincre la machine!!!

J'espere que j'ai été assez claire dans mon explications!!!
Je remercie d'avance celui(elle) qui me repondra!!
Je pense que ca doit etre possible de le réaliser, mais je blok vraiment sur les codes à mettre pour arriver à ce que j'ai besoin!!

Vraiment encore merci d'avance!

EmieCub
Répondre à EmieCub

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le jeudi 7 avril 2005 à 11:59:51
Bonjour EmieCub,

Content d'avoir de tes nouvelles, et que tu t'en sortes honorablement.
Pour effacer le texte de la textbox, est-ce que remettre à "" la value ne suffit pas ?

textBox4.Value = ""

Si ce n'est pas ça, c'est que je n'ai pas bien compris ton problème. Dans ce cas, reviens.

Félicitations en tout cas.
Armojax.
Répondre à Armojax

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
EmieCub, le vendredi 8 avril 2005 à 11:03:51
Bonjour Armojax,

D'abord, je voulais te remercier pour ta réponse aussi rapide!! En effet, le code que tu m'as donné marche nikel pour effacer les textbox!
Mais en fait, j'avais un autre pb sur ces codes :
Je voudrai que ca envoi les données des textbox dans les cellules A20 et C20, mais que ca puisse, à la ressaisi, renvoyer les suivantes en A21 et C21, puis A22 et C22, etc...

Voilà ce que j'ai pour l'instant :
Private Sub Valider_Click()
[A20] = UserForm1.TextBox4
[C20] = UserForm1.TextBox5

TextBox4.Value = ""
TextBox5.Value = ""

End Sub

J'avais vu sur un site un code de type (A20:A), apparemment pour indiquer qu'on envoit vers les cellules vides de la colonnes A à partir de A20, mais ca ne marche pas!!

Je sais pas si je t'ai mieux expliqué mon souci!!

En tout cas, encore merci pour les renseignements précédents et merci d 'avance pour les prochains!!!!!

Emilie
Répondre à EmieCub

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le vendredi 8 avril 2005 à 11:32:24
Bonjour Emilie,

Tu as la solution de gérer un petit compteur (Integer) que tu incrémentes à chaque nouvelle saisie.
Si on l'appelle "I", au lieu d'alimenter :
[A20]
tu alimentes :
[A20].Offset(I, 0)
en faisant varier I à partir de 0.

Bon VBA, bonne journée et bon week-end !
Armojax.
Répondre à Armojax

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
random, le vendredi 8 avril 2005 à 18:20:32
regarde dans l'aide vba la propriété end
elle est pas belle, la vie ?
Répondre à random

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
EmieCub, le lundi 18 avril 2005 à 10:30:14
Bonjour,

Me revoilà, certes avec une semaine de retard, mais je tenais quand même à remercier Armojax (et Random) pour leurs réponses et conseils!!!

Je suis finalement bien fière de dire que je suis arriver à faire ce que je voulais sur excel!! Quel bonheur d'arriver enfin, après lutte acharnée, à vaincre la machine!!!:)

Je m'attaque maintenant à quasiment la dernière partie de ma tâche, càd lier certaines de mes colonnes d'excel à une table d'access. Et là, c'est pas gagné!!!

Malgré tout, je vais aller jeter mes yeux vers les posts antérieurs, sait-on jamais!!! Mais je ne promets donc pas de ne pas revenir faire appel à vos lumières qui m'ont permis d'être sur la bonne voie dès le début!!!

Alors encore merci, c'est un peu grâce à ce forum et à vous que j'ai pu bien avancer sur mon projet et découvrir VBA (et comprendre!!) !!! Et certainement à très bientôt!

Emilie
Répondre à EmieCub

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ninoule, le dimanche 27 janvier 2008 à 00:19:41
Bonjour,

je cherche à créer un document type avec word, dans lequel devra figurer un numéro référence qui changera dans l'ordre croissant, chaque fois que j'utiliserai ce document, de façon à pouvoir suivre la numérotation et l'archivage des différents courrriers de l'entreprise.

j'aimerais également que lors de la fermeture de ce document qu'une partie de la référence et la date du jour nomme automatiquement ce document.

je vous en remercie d'avance, si vous pouvez m'éclairer car je ne comprends strictement rien aux macros.

Nora
Répondre à Ninoule

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
basa, le vendredi 23 mai 2008 à 23:01:01
bonjour j'ai creer une macro sur WORD et je lui es associé un bouton "inserrer" pour me copier l'image sur une autre feuille WORD mais sa ne marche pas!! je suis perdu si quelqu'un à une idée je vous enprie aidé moi!!!
Répondre à basa

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Urban, le mercredi 28 mai 2008 à 10:00:55
Bonjour

Je débute en visual basic et j'ai un problème .
Je voudrai à l'aide d'une commande (cmdsuivant) aller de la form1 ,où la commande se trouve ,jusqu'à la page form2.
Et aussi savoir comment faire pour pouvoir utiliser la touche retour arrière quand j' ai paramètré un textbox en ascii pour qu'il ne puisse afficher que des chiffres.

Private Sub Text8_KeyPress(KeyAscii As Integer)

If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0

End Sub

Merci
Répondre à Urban
Logiciels pertinents trouvés dans les téléchargements
Télécharger doPDF 6.1.267doPDF - DoPDF est un convertisseur de fichier PDF à usage personnel ou commercial. En utilisant ce programme, vous pourrez créer des...Catégorie: PDF
Licence: Freeware/gratuit
Télécharger Word Viewer 2003Word Viewer - La visionneuse Word Viewer vous permet d'ouvrir des documents Word 2003 et des documents créés avec toutes les versions...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger OpenOffice.org 2.4.1OpenOffice.org - OpenOffice est une suite bureautique complète entièrement gratuite, compatible avec la suite Microsoft Office. Elle...Catégorie: Suite bureautique
Licence: Open Source
Plus de logiciels gratuits sur « Débutante VBA, macro Excel/Word »