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 :

Problème de boucle et utilisation mots récurrents


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Novembre 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Novembre 2018
    Messages : 20
    Par défaut Problème de boucle et utilisation mots récurrents
    Bonjour,
    dans le cadre d'un projet je dois restructurer un tableau.
    La principale difficulté est de trouver le mot le plus vue dans une colonne, de l'utilisé comme variable puis ensuite de passé au 2ème mot le plus utilisé dans la colonne et de s'en servir comme variable à la place du premier mot ...
    J'ai pris comme réflexion de renouveler la variable dans une boucle quand le bout de programme trouve le premier mot récurrent dans un autre tablaux.
    Le problème aussi est qu'a chaque boucle, il prend comme variable le premier mot récurrent puis le deuxième puis reviens à reprendre le premier ...

    pouvez-vous m'aider ?
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
    Option Explicit
     
    Sub Essai_Electrique_modelage()
     
       Dim nom As String   ' Variable du nom de l'essai
       Dim Dep As String ' Variable dépendance
       Dim Cellule As Range ' Variable pour sélectionner la cellule
       Dim Essais As Variant ' Déclaration tableau
       Dim Rng As Range ' Variable servant à trouver la récurrence
       Dim MotFreq As String ' Variable sortant le mot
       Dim Mx As Integer
       Dim c As Range
       Dim Str As String
       Dim nompresent As Range 'range qui vérifie si le mot est présent dans le tableau ou non
       Dim firstAddress As String
       Dim derligne As Integer
       Dim i As Integer
       Dim dl As Integer
       Dim exec As String
       Dim reper As Range
     
       'Ecriture du tableau recompiler
            Essais = Array("Nom de l'essais", "Emplacement", "Durée Te(min)", "Dépendance", "Support", "Sous-tension")
     
            Cells(1, 12) = Essais(0)
     
            Cells(1, 13) = Essais(1)
     
            Cells(1, 14) = Essais(2)
     
            Cells(1, 15) = Essais(3)
     
            Cells(1, 16) = Essais(4)
     
    'Test Essai commetant le plus de dépendance
    Set Rng = Range("G5:G11") 'Plage où l'on veut trouver le mot
     
    derligne = Range("G" & Rows.Count).End(xlUp).Row
     
    For i = 5 To derligne
     
    Set reper = Columns(7).Find(what:=nom, LookIn:=xlValues, LookAt:=xlWhole)
      If Not reper Is Nothing Then
     
       For Each c In Rng
        If reper <> c Then
            Mx = Application.CountIf(Rng, c.Value)
            Str = c.Value
        End If
     Next c
     MotFreq = Str
     
          nom = MotFreq
     
         'Test si l'essai trouvé possède une dépendance
          Dep = Application.WorksheetFunction.Index(Sheets("Feuil1").Range("G5:G11"), Application.WorksheetFunction.Match(nom, Sheets("Feuil1").Range("D5:D11"), 0), 0) 'Trouve la dépendance correspondante à l'essai
     
     
         If Dep = "0" Then
     
     
    'Recherche dans la première colonne du tableau, la variable
      Set Cellule = Columns(4).Find(what:=nom, LookIn:=xlValues, LookAt:=xlWhole)
      If Not Cellule Is Nothing Then Range(Cellule, Cellule(1, 5)).Select
      Selection.Copy Destination:=Range("L1:P1").Offset(1, 0)
     
        Else
     
       Set Cellule = Columns(4).Find(what:=Dep, LookIn:=xlValues, LookAt:=xlWhole)
      If Not Cellule Is Nothing Then Range(Cellule, Cellule(1, 5)).Select
       Selection.Copy Destination:=Range("L1:P1").Offset(1, 0)
     
    'Ecris la deuxième ligne dans le tableau
    Set Cellule = Columns(4).Find(what:=nom, LookIn:=xlValues, LookAt:=xlWhole)
      If Not Cellule Is Nothing Then Range(Cellule, Cellule(1, 5)).Select
      Selection.Copy Destination:=Range("L1:P1").Offset(2, 0)
     
      End If
     
      With ActiveSheet
    Set nompresent = Columns(7).Find(what:=nom, LookIn:=xlValues, LookAt:=xlWhole)
     
      If Not nompresent Is Nothing Then
      firstAddress = nompresent.Address
      Do
      Range(Range(nompresent, nompresent(1, 0)).End(xlToLeft), Range(nompresent, nompresent(1, 0)).End(xlToRight)).Select
    Selection.Copy Destination:=Range("L1:P1").End(xlDown).Offset(1, 0)
    Set nompresent = Columns(7).FindNext(nompresent)
     
    exec = Application.WorksheetFunction.Index(Sheets("Feuil1").Range("L2:L24"), Application.WorksheetFunction.Match(nom, Sheets("Feuil1").Range("L2:L24"), 0), 0)
    Loop While Not nompresent Is Nothing And nompresent.Address <> firstAddress
     
    End If
     
    End With
     
    End If
     
    Next
     
    End Sub
    ESSAIS ELECTRIQUE.xlsm
    Module 7 dans le fichier ci joint

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037

Discussions similaires

  1. [WD-2007] Problème de remplactement d'un mot dans une boucle
    Par yberard dans le forum VBA Word
    Réponses: 0
    Dernier message: 13/07/2017, 06h10
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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