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 :

VBA besoin d'aide svp


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut VBA besoin d'aide svp
    bonjour le forum ,
    J'ai besoin de votre aide ,pour un pgm VBA que je suis en train de faire .

    Explication du fichier et du besoin :
    J'ai une collection de données (ligne et colonne aléatoire), dans la plage de données commençant de G3 a X et Y, j'ai besoin de trouver le mot "Recomptage" dans cette plage (Jusque la je pense que c'est bon)
    Une fois ce mot trouvé je voudrais récupérer les données contenues dans la ligne du mot trouve en col Ax a Gx et la valeur du titre , et les coller sur un autre onglet
    Ce que j'ai essayer de faire :

    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
    Sub test()
    Dim PlageTravail As Range, cell As Range
     
    Set ws = Sheets("CTRL comptage 1")
    NumLign = Range("G" & Rows.Count).End(xlUp).Row + 1 'n° de la première ligne vide de la colonne A
    NumCol = Cells(3, Columns.Count).End(xlToLeft).Column 'n° de la dernière colonne non vide de la ligne 1
     
    Set PlageTravail = ws.Range(ws.Cells(3, 7), ws.Cells(NumLign, NumCol))
    For Each cell In PlageTravail
        If cell.Value = "Recomptage" Then
            MsgBox cell.Value
            cell.Select
        End If
    Next cell
     
    End Sub
    Exemple concret :
    Imaginons que je trouve le mot en cellule AK8 , je veux récupérer les valeur de A8 a G8 et AK3 .
    Et copier ces valeur dans un autre onglet ou incrémenter une array .
    Merci pour votre aide précieuse .

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Proposition utilisant la méthode Find

    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
    Sub test()
    Dim PlageTravail As Range, c As Range
    Dim NumCol As Integer
    Dim NumLign As Long
    Dim Prem As String
     
    Application.ScreenUpdating = False
    With Worksheets("CTRL comptage 1")
        NumLign = .Range("G" & .Rows.Count).End(xlUp).Row
        NumCol = .Cells(3, .Columns.Count).End(xlToLeft).Column
        Set PlageTravail = .Range(.Cells(3, 7), .Cells(NumLign, NumCol))
    End With
     
    With PlageTravail
        Set c = .Find("Recomptage", LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            Prem = c.Address
            Do
                Envoi c
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Prem
        End If
    End With
    Set PlageTravail = Nothing
    End Sub
     
    Private Sub Envoi(ByVal v As Range)
     
    With Worksheets("Destination")    'à adpter
        With .Cells(.Rows.Count, 1).End(xlUp)(2)
            .Resize(, 7).Value = v.Offset(, 1 - v.Column).Resize(, 7).Value
            .Offset(, 7).Value = v.Offset(3 - v.Row).Value
        End With
    End With
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    Merci Mercatog pour avoir pris le temps de me répondre à 00H45...
    Ton bout de code fonctionne à la perfection , j'ai adapté a mes besoins mais cela correspond .
    Un grand Merci donc je clos le sujet.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2011, 21h29
  2. Réponses: 5
    Dernier message: 18/04/2011, 17h20
  3. Besoin d'aide SVP Requete en VBA sous access
    Par Kalvin_20 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/04/2008, 16h39
  4. Programme VBA : besoin d'aide svp
    Par antoine21 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/06/2007, 22h44

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