Accueil > Forum > > > > Infos VBA
Infos VBA
jeudi 1 novembre 2007 à 17:34:44 |
Infos VBA

bidule2409
|
Bonjour à tous, Voilà, je suis en train de bosser sur un projet assez gros avec de l'Access, Excel, Business Object..., et j'ai quelques questions auxquelles je ne trouve pas de réponse. Tout d'abord, je voulais savoir si, dans Excel, il y avait moyen de stocker toutes les procédures et fonctions sans passer par "Perso.xls". Puis, je voulais savoir si la fonction "RechercheV" pouvait se faire sur plusieurs critères. Est-il possible avec VBA, d'ouvrir un fichier grâce à une boîte de dialogue, et existe-t-il un moyen de créer une boîte de dialogue permettant de sélectionner une plage de cellules (comme lorsque l'on sélectionne un tableau pour créer un tableau croisé dynamique par exemple). Dernière petite question, est-il possible grâce à VBA de créer une icône tel qu'une tête souriante, neutre aigri...? En tout cas, merci pour votre aide qui me sera très précieuse. Bidule2409 
|
|
jeudi 1 novembre 2007 à 19:44:16 |
Re : Infos VBA

bidule2409
|
J'en ai oublié une petite dernière. Je souhaite supprimer les colonnes si aucune des cellules de celles-ci n'ont de valeur. Pour l'instant, j'ai ce code : Sub colonne_vide() For i = 1 To DerniereColonne If Cells(1, i).Value = "" Then Cells(1, i).EntireColumn.Delete Shift:=xlToLeft DerniereColonneEnCours = Range("Z1").End(xlToLeft).Column If i >= DerniereColonneEnCours Then Exit Sub i = i - 1 End If Next i End Sub Mais là, il ne supprime que les colonnes qui n'ont pas de valeur uniquement dans la première cellule. Comment faire pour qu'il balaie l'ensemble des cellules de cette colonne ??? Gratias  Bidule2409 
|
|
vendredi 2 novembre 2007 à 00:34:33 |
Re : Infos VBA

MPi
|
Plutôt que Perso.xls, tu as la possibilité de sauvegarder tes macros en xla (macro complémentaire)
Pour la RechercheV, ça dépend... tu peux concaténer plusieurs cellules sur une feuille et faire une RechercheV sur une concaténation de plusieurs valeurs...
Pour ouvrir une boîte de dialogue, il y a Dialogs que tu peux regarder. Il y a aussi Application.GetOpenFilename pour ouvrir un fichier.
Pour ton bout de code, il te faut 2 boucles imbriquées. Une qui lit de bas en haut ou du haut vers le bas, puis celle que tu as qui lit de gauche à droite.
MPi²
|
|
vendredi 2 novembre 2007 à 12:31:53 |
Re : Infos VBA

Frederic45
|
Bonjour à tous Bonjour bidule2409, MPi
En complément de la réponse de MPi : - 1 - pour la rechercheV, c'est possible, tout dépend ce que tu veux récupérer, et formule ou VBA ?
- 2 - ouverture de fichier en VBA, oui, sélection de plage à vérifier, mais est ce toujours la même plage ?
- 3 - icône : peut être, mais pourquoi en VBA ?
- 4 - suppression :
Sub supp() DerniereColonne = Range("iv1").End(xlToLeft).Column For i = 1 To DerniereColonne masomme = Application.WorksheetFunction.CountA(Columns(i)) If Application.WorksheetFunction.CountA(Columns(i)) = 0 Then Columns(i).EntireColumn.Delete i = i - 1 End If Next i End Sub
A+
Frédéric
|
|
vendredi 2 novembre 2007 à 12:44:31 |
Re : Infos VBA

bidule2409
|
Salut et tout d'abord, merci pour vos réponses. Pour la fonction rechercheV, je souhaiterai la programmer sous VBA, j'arrive à faire une fonction "simple", mais pas une recherche multicritères. En fait, j'ai une base de données sous forme tableau, et ce que je souhaite, c'est récupérer des infos sur les employés. Ce que j'aimerai, c'est lorsque je saisie un nom, si plusieurs employés ont le même nom, Excel m'affiche un message d'avertissement et me demanderait, par exemple, de saisir en plus le prénom. Si 2 personnes ont le même nom et le même prénom (rare, je sais, mais je préfère voir toutes les éventualités), Excel me demanderait alors une autre renseignement. Pour la sélection de plage, ça ne sera pas toujours la même plage. J'ai essayé de trouver des petites choses, mais pas de résultat. Pour l'enregistrement d'un document en XLA, ça marche pas mal, j'arrive à récupérer mes fonctions mais je ne trouve pas mes procédures !  Pour ce qui est des icônes, ça serait par exemple, pour des messages d'erreur ou d'avertissement. Et un grand merci pour le code de suppression, c'est super !! Merci de votre aide. Bidule2409 
|
|
vendredi 2 novembre 2007 à 14:29:24 |
Re : Infos VBA

Frederic45
|
Re
Pour rechercheV, je pense qu'il faudrait prendre une autre fonction : find peut être
Pour les plages, il faudrait en savoir un peu plus, cad est ce la même plage (ou un choix limité) pour 1 seul fichier , ou est ce aléatoire à chaque fois ?
Pour les xla, il faudrait savoir comment elle est créée, et comment tu appelles tes procédures
Quant aux icônes, une image créée avec un logiciel adapté me parait préférable. Excel peut en créer, mais ce n'est pas formidable
Un petit extrait de ton fichier serait donc le bien venu (attention aux données perso)
PS : la ligne : masomme = Application.WorksheetFunction.CountA(Columns(i)) du code de suppression, n'est pas nécessaire
Frédéric
|
|
vendredi 2 novembre 2007 à 23:42:06 |
Re : Infos VBA

MPi
|
Salut,
Comme Frederic, pour la recherche, j'opterais pour Find plutôt qu'une RechercheV dans la feuille ou dans VBA. Il y a aussi la possibilité d'utiliser tes données comme une base et utiliser ADO pour faire des recherches. Si ton Recordset.Recordcount > 1 alors demande d'un autre critère, autre requête SQL et revérification de Recordcount... jusqu'à ce qu'un seul enregistrement ait été trouvé.
Pour la sélection de plage, c'est pas très clair... tu pourrais afficher ton propre UserForm en mode Modeless qui te permettrait de sélectionner une plage tout en conservant le Userform affiché.
Pour les fichiers xla, tu dois les cocher dans le menu Macro complémentaires d'Excel. Pour ce qui est de leur code, tu le trouveras dans l'IDE lors du chargement d'Excel.
Pour l'effacement de lignes ou de colonnes, commence toujours par la fin (bas ou droite)
MPi²
|
|
samedi 3 novembre 2007 à 01:03:40 |
Re : Infos VBA

Molenn
|
Pour ton rechercheV, tu as peut être moyen de remplacer par un filtre élaboré (Menu Données\Filtre\Filtre élaboré), ça considère ton tableau comme une base de données et te permet d'écrire de "pseudo" requête, comme si tu étais dans l'assistant Requête d'ACCESS. C'est pas forcément très intuitif au début, mais une fois qu'on a pigé la méthode, ça peut être très intéressant.
Te suffirait de lancer le filtre élaboré par code VBA, de compter le nb de ligne obtenu, et si plus d'une, de relancer le filtre en insérant un critère supplémentaire.
Molenn
|
|
samedi 3 novembre 2007 à 09:32:27 |
Re : Infos VBA

Frederic45
|
Bonjour à tous
Suite à la réponse de MPi, le code modifié de la suppression :
Sub supp() DerniereColonne = Range("iv1").End(xlToLeft).Column For i = DerniereColonne To 1 Step -1 'on part de la gauche, et on décrémente If Application.WorksheetFunction.CountA(Columns(i)) < 2 Then Columns(i).EntireColumn.Delete End If Next i End Sub
en partant de la gauche. J'ai aussi adapté pour supprimer les colonnes qui auraient seulement un titre : ...<2
Frédéric
|
|
Cette discussion est classée dans : vba, créer, moyen, excel, infos
Répondre à ce message
Sujets en rapport avec ce message
vba EXCEL (création de couples) [ par h_adil ]
Bonjour,je suis entrain de créer un programme vba sur excel qui me permet de créer des couple de cells.j'explique :dans une feuille clients j'ai une c
Créer fichier .XLW en VBA [ par 71caro ]
Bonjour,J'ai des fichiers excel de type XLS et je souhaiterais en VBA pouvoir selectionner certains d'entre eux et de les enregistrer sous un environn
VBA Excel - Comment créer une combobox contenant texte et image? [ par dorianovitch ]
Salut,Je recherche comment créer une combobox contenant du texte et des images.J'ai trouvé un petit quelque chose, mais ça ne fonctionne pas...<a href
VBA et VB6 [ par seb3009 ]
Bonjour, j'ai appris quelques bases en VBA et j'arrive à créer quelques macros assez simples sur excel 2000. Mais j'aimerais pouvoir créer un programm
[Déplacé .Net --> VBA] tableau VBA excel et extraxtion d'infos [ par JMLebnen ]
Bonjour!! qu'elqu'un sait comment on crée un tableau sous excel avec VBA?? ja dois creer un tableau a 12 colonnees et le nombre de lignes ki aumente e
Créer un pdf en VBA excel [ par lenylett ]
Bonjour, Je suis vraiment au bout du rouleau !!! Je recherche depuis longtemps un bout de code VBA pour créer sur Excel un pdf (dont j'aurai à défini
[Déplacé VB6 --> VBA] créer un programme sous VBA [étudiant] [ par jcdaussy ]
Bonjour, voici mon problème, je dois créer un programme sous VBA Excel, j'ai créer ma base de données, ma userforme avec des combobox, mais je n'arriv
Créer une DLL en VB.NET et l'expliter deouis VBA excel [ par lerian01 ]
Bonjour, J'ai développé une grosse application VBA excel avec un tas de modules. Pour des raisons de performances et de dissimulation du code, j'aime
Créer interface sur Excel / VBA [ par Tropique ]
Bonjour à tous, Je suis en stage dans une association pour l'organisation d'un événement, je dois créer un fichier excel qui permet de suivre les pla
[EXCEL] Créer histogramme VBA [ par pitipilot ]
Bonjour, je réalise actuellement un algorithme permettant d'effectuer à partir de macros, des requêtes SQL en vba. J'aimerai à chaque requête effectué
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|