VBA recherche & export - erreur de type

Bonjour à tous,

J'essaye de coder un programme de recherche pour BDD et je n'arrive pas à écrire correctement les critères de mises en forme du tableau des résultats, pour des variables de type Variant, je souhaite utiliser la variable "format" comme affichage final du programme sous la forme d'un tableau regroupant les entêtes et une partie des colonnes de la table de recherche (onglet1).

format = Array(Rows("1" & "résultat"), Columns("A to Q"))

Le fichier joint comprend l'ensemble de mon travail. Vous remarquerez sans doute beaucoup d'autres erreurs dans le code, je vous prie d'être magnanime envers mon premier programme en VBA, qui, avec vos encouragements, finira par être succès .

Merci d'avance, Martin

bonjour

je comprend pas encore que vous voulez faire exactement !

Bonjour Amir,

En fait je souhaite attribuer un tableau à la variable "format" (type variant), contenant les entêtes (ligne 1) de mon premier onglet ainsi que le contenu de la variable "résultat" (un tableau) tout en précisant les colonnes à afficher (A to K).

mais dans le code

format = Array(Rows("1" & "résultat"), Columns("A to Q"))

je me retrouve avec une "erreur d'éxécution 13 : Incompatibilité de type". Et là c'est trop flou pour moi...

1 : Si tu souhaite attribuer un tableau à la variable format, il faut l'attribuer au début là ta variable format est sous forme "variant" et sous forme tableau c'est plutôt

Dim format(9,1)  'Tableau de 10 par 2 cases

2 : Il faut que tu revois 2/3 bases d'écritures par exemple on n'écrit pas :

Range("A to Q")

mais plutôt

Range("A:Q")

Enfin : Pour ton histoire de tableaux en VBA je te conseil les cours présent sur le site : https://www.excel-pratique.com/fr/vba/tableaux_vba.php

et https://www.excel-pratique.com/fr/vba/tableaux_vba_suite.php

ça permet de mieux appréhender les choses.

Espérant t'aider un peu

puis, ou et comment vous voulez afficher "format"

Bonjour Avie,

Merci pour ta réponse, en effet, elle comble certaines de mes lacunes, mais il reste une bonne marge de progression!

Les derniers essais me renvoient la même erreur, pourtant le code a évolué suivant tes conseils :

la variable "format" est déclarée telle que:

Dim format ()

& le code de mise en forme est devenu ça :

ReDim format(résultat, ("A:K"))

J'ai pensé que cela peut être lié à la variable "résultat" (type variant) donc je l'ai aussi modifiée comme tableau dynamique mais c'est sans effet...

@ +

Amir,

Votre question sur le "où" et "comment" affiché "format" correspond à la deuxième partie du programme, l'export!

Je propose à l'utilisateur par UserForm de l'enregistrer comme un onglet du fichier ouvert, de l'exporter en PDF ou de l'imprimer...

c'est l'UF "Export" dans le fichier joint...

donner moi un exemple de recherche et une resultat de cette recherche

Amir,

Je ne peux pas vous fournir de réponses car la fonction de recherche du projet comporte encore beaucoup d'erreurs que je traque ici avec votre aide.

L'idée de base est de lancer une recherche par mot-clé en précisant une mise en forme par boutons d'option sur un premier UF.

Un second UF propose ensuite 3 choix d'export qui déterminent le type d'affichage des résultats.

L'erreur présentée dans le 1er message correspond à une instruction de mise en forme des résultats de la recherche. Ce qui m’empêche de te donner un exemple précis.

J'espère être plus clair sur le but de ma requête mais n'hésitez pas à m'interpeller si ce n'est pas le cas.

Merci de votre soutien!

Martin

bonsoir

ce que je veux dire :

expliquer l'idée de base par la citation d'une recherche par mot-clé (donner un exemple ) en précisant une mise en forme par boutons d'option sur un premier UF (donner un exemple ) .

exmple :

je vai rechercher le mot-clé "......." avec une mise en forme "..............." , puis je vai imprimer toute les feuilles qui contient ce mot

bonsoir,

voila la fonction de recherche codée:

recherche = TextBox.Value
ligne = WorksheetFunction.CountA(feuil1)
ReDim résultat(ligne.FindAll(what:=recherche, MatchCase:=False))

et l'exemple de mise en forme (Vue commande) :

 ReDim format("résultat", Worksheets(1).Columns("1:17"))
     If Ok_click Then export.Show

Sinon, pour le mot-clé "agitateur" et la mise en forme "données brut" je souhaite avoir l'ensemble des lignes du 1er onglet contenant le mot "agitateur".

J'espère que c'est de ça qu'il s'agit car je n'ai pas bien compris ton message...

Merci Amir!

Bonjour,

Personnellement j'éviterai de le nommer format qui est un mot clé de vba et peut entrainer des confusions (pour nous pas gênant mais si c'est excel qui se fait des noeuds...)

Mettre ne serait-ce qu'un nombre derrière

eric

bonjour

Sur quelle colonne vous voulez chercher le mot clé

Prenant l’exemple de "agitateur"

Si par exemple sur colonne b = Désignation vous auriez 168 linges

Si par exemple sur colonne h = Composant vous auriez 3 linges

Puis, combien de colonnes vous voulez exporter (4, 5 ou 8,….), ou des combinaisons de colonnes ect ….

Ensuite soit vous les imprimez ou l’exporter via un PDF il faut ajuster la taille de la feuille et surtout la largeur (ensemble de colonnes)

Bonsoir,

Merci eriiic pour le tuyau, appliqué de ce pas!

Amir,

la recherche doit débuter en A puis B,... Le résultat est censé reprendre toute les lignes trouvées (sauf les doublons) sur 2 combinaisons de colonnes différentes (vues clients et commandes) et une possibilité de voir toutes les colonnes (vue données brutes).

l'ajustement des tableaux de sortie est une suite qui m'a échappée! Je manque un peu de ce recul nécessaire pour cet exercice!

Merci pour tes idées qui éclairent mes manques! A bientôt!

bonsoir

je pense que cette foncction "FindAll" existe sous Version Excel : 2010fr que vous possédez ?!

Bonjour,

Oui Amir c'est une fonction récente, pour revenir à l'adaptation des résultats au format d'impression, je pense que les fonctions .HPageBreaks.Count et .VPageBreaks.Count doivent suffire pour éviter des problèmes de lisibilité.

Qu'en penses-tu?

bon week end à tous ! 8)

dans Private Sub num_compte_Change()

double-clique sur l'objet dans ton UF

edit : oula, je viens de voir que j'ai écrit sur le mauvais fil...

bonjour

tu n a pas repondus :

la foncction "FindAll" existe (integrée) sous Version Excel : 2010fr ou non ?!

Bonjour Amir,

Après vérification il semble que Findall soit un module de la fonction Find utilisable dans les versions supérieurs à 2000... Donc oui excel 2010 reconnait ce module, par contre mon appel n'est pas correct. C'est par là que je dois commencer il me semble...

Comme je le disais au départ il y a beaucoup d'erreurs et je n'ai pas la capacité de toutes les comprendre, c'est pourquoi je viens chercher de l'aide ici!!

Bonne journée!

bonjour

soit un module, une fonction , addin ou autre chose je pense qu'il y en beaucoup , plusieur methodes et facons pour l ecrire , chaqu 'une a ses arguments, capacité, erreurs, défit......,

alors il te faute choisir une de ces fonctions qui te semble optimisée puis ,

Rechercher des sujets similaires à "vba recherche export erreur type"