IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction Find ou Replace [XL-2003]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut Fonction Find ou Replace
    Bonjour le forum,

    Le code suivant me sert à ouvrir et à récupérer des données (telles que la moyenne, valeur maximun ...) à partir d'un fichier texte que je copie dans un fichier excell.

    Cependant, je recherche la valeur mimimum des données et celle-ci est parfois égale à zéro (voir fichier texte joint).
    Je souhaite donc ne pas prendre en compte les valeurs égales à zéro et j'ai pour cela utiliser la fonction replace imbriqué dans deux boucles for...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Sub Sheet_resistance()
     
    Dim WB As Workbook
    Dim TreatedFile As Workbook
    Dim Counter As Variant 'Declaration de counter
    Dim a As Integer 'declaration de la varaible a comme nombre entier
    Dim maximum As String
    Dim minimum As String
    Dim i As Integer
    Dim j As Integer
     
    i = 4
    j = 1
     
    Set WB = ThisWorkbook  'creation d'un nouveau fichier
     
    Counter = Application.GetOpenFilename(",*.map", , , , True) 
    If VarType(Counter) = vbBoolean Then Exit Sub
     
    For a = 1 To UBound(Counter)
     
        Set TreatedFile = Application.Workbooks.Open(Counter(a), xlMSDOS)
     
        With TreatedFile
            newname = Worksheets(1).Name
     
            For i = 4 To 8
                For j = 1 To 5
                    If Worksheets(1).Cells(i, j).Value = 0 Then
                        Worksheets(1).Cells(i, j).Value = Replace(Worksheets(1).Cells(i, j).Value, "0", " ")
                    End If
                Next j
            Next i
            maximum = Application.WorksheetFunction.max(range(Cells(4, 1), Cells(9, 5)))
            minimum = Application.WorksheetFunction.Min(range(Cells(4, 1), Cells(9, 5)))
            .Close (False)
         End With
     
        i = 4
        j = 1
     
    Next a 'fin condition
    Ce code fonctionne bien mais je me dit que faire deux boucles for, ça doit pas être terrible et il doit surement y avoir moyen de gagner du temps et que ça soit plus simple.

    J'ai essayé la fonction "find", mais j'avoue que meme avec l'aide et les divers posts sur le net, je n'y suis pas arrivé.

    Y en a t-il parmi vous qui aurait des idées SVP?
    Merci d'avance,
    Johann
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Find et Replace
    Par beuzy dans le forum SAP
    Réponses: 7
    Dernier message: 11/03/2014, 05h08
  2. [VBA-E]Problème avec la fonction Find
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2006, 18h43
  3. [VBA-E]Fonction .find
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/01/2006, 11h03
  4. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16
  5. Cherche Fonction du style replace...
    Par sdchamplas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/03/2003, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo