begin process at 2012 02 14 08:26:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Infos VBA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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é


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales