Tableau dynamique

aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008 - 28 févr. 2008 à 09:23
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 29 févr. 2008 à 22:49
voila mon code qui ouvre converti et affiche un fichier .txt en .xls....
Sub ChercheOuvreConvertitAffiche()
'
Workbooks.OpenText Filename:=Application.GetOpenFilename("Fichier à ouvrir(*.txt), *.xls") _
        , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=True _
        , Comma:=True, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1))


End Sub

jusque la rien de  bien grossier....
Mais tout se complique :)
En gros j ouvre un listing qui contientdes milliers de lignes representant des dizaines de rubriques diffferentes et je voudrais en selectionner une en particulier et n afficher que celle ci.... Voila a quoi j ai pense :
creer un tableau dynamique (je sais pas comment faire.... je crois que c est avec redim)
lire tout le fichier
quand la lecture rencontre les 3 cases "Reactions" "aux" "Fondations"
je veux qui stocke le tableau
des qu une ligne entiere vide apparait c est que le tableau est termine
afficher le tableau...

BUT HOW ?

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 févr. 2008 à 11:04
Bonjour aussi, Aducloux
Ca, c'est une instruction d'ouverture de fichier.
Tu ne peux pas lui demander de faire le tri à ce moment là.
Il te faut imaginer une macro à lancer derrière pour faire ce que tu souhaite (Rechercher, supprimer ...)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008
29 févr. 2008 à 09:21
c est vrai je me suis mal exprimé .... merci Jack en tout cas !!!
 
Selection.Find(What:="Réactions", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False).Activate = a
        Row(a) = b      ' je veux recuperer la ligne
      Column(a) = c    ' je veux recuperer la colonne
 
    Range("Cells(b, c):Cells(b+13,c+17)").Select ' je selectionne de la cellule ou se trouve le mot reactions jusqu ala cellule decalé de 13 lignes et de 17 collonnes-----> ca me fait un tableau  de 13*17
    Selection.Copy   'je copie
    Sheets.Add       'je mets ca ds une nouvelle feuille
    Range("A1").Select
    ActiveSheet.Paste

en fait voila ma macro globalement elle va chercher le mot reaction (jusque la ca marche ...) mais c est apres que ca coince  !!!
je voudrais recuperer les coordonnees de la cellule ou se trouve le mot "Réactions" pour pouvoir lancer un copier coller du tableau qui suit le mot ....
En fait je ne vois pas ce qui cloche dans mon code....
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 févr. 2008 à 22:49
Pour trouver l'adresse de la cellule trouvée, il faudrait que tu envoies ta fonction Find dans une variable Range. Et il serait préférable que tu n'emploies pas Select ou Selection si ce n'est pas nécessaire...

Dim Recherche as Range
Set Recherche = Selection.Find(What:="Réactions", LookIn:=xlValues, _
        LookAt:=xlPart,  MatchCase:=False)
If Not Recherche Is Nothing Then  'trouvé
    Msgbox Recherche.Address
End If

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous