Difficulté vba

Difficulté vba - VB/VBA/VBS - Programmation

Marsh Posté le 23-03-2015 à 20:28:52    

Bonsoir à tous,
 
Je debute en macro excel et je tente actuellement d'ecrire une macro me permettant une analyse de cellule puis un copier/ coller de ligne.
 
Voici ce que je souhaite:
Sur l'onglet "master planning" je souhaite lancer une analyse de valeur dans la colonne C de mon tableau.
L'ensemble des cellules va de C20 à C240.
La macro doit comparer la valeur numerique de chaque cellule l'un apres l'autre jusqu'à ce quelle trouve la cellule egale a une autre cellule de la page (variable en cellule CA2).
Des que la macro a trouvé la cellule correspondante, elle copie la ligne entiere et la copie sur une autre page (FTA).
J'ai essayé avec for each mais rien ne se passe...
 
Merci pour votre aide
 
Cclc

Reply

Marsh Posté le 23-03-2015 à 20:28:52   

Reply

Marsh Posté le 24-03-2015 à 11:41:51    

 
           Bonjour,
 
           conformément aux règles du forum (à lire donc !), poster le code entrepris …
 
           Sinon le plus efficace est d'utiliser les fonctionnalités de feuilles de calcul au lieu de partir dans une usine à gaz !
           Voir du côté du filtre avancé …
 
           _______________________________________________________________________________________________
           Je suis Charlie  -  Je suis Bardo
 

Reply

Marsh Posté le 24-03-2015 à 18:13:55    

Désolé Marc il est vrai que je me suis aperçu un peu tard que j'avais laissé le fichier au boulot.
Je vais regarder les filtres pour voir si cela est possible.
En attendant, voici les lignes de prog mais j'ai fait tellement de modif qu'à la fin je ne suis plus sûr d'avoir l'exhaustivité des lignes de prog pour ce type d'analyse.
 
Private Sub Commandbutton1_Click()
Application.ScreenUpdating = False
Range("CA2" ).Clear
Range("CA2" ) = TextBox1
FTA.Hide
Sheets("Master planning" ).Select
 
    Dim plage As Range, cel As Range
    'valeur a chercher
    valcherch = Sheets("Master planning" ).Range("CA2" )
      Set plage = .Range("C20" & derlig)
    End With
     
   With Worksheets("Master planning" )
        'test plage
        For Each cel In plage
            If cel = valcherch Then
                'premiere cellule vide apres derniere non vide colonne C
                derlig = .Range("C" & Rows.Count).End(xlUp).Row + 1
                'premier lancement
                If derlig = 2 Then
                    derlig = 20
                End If
                'copy ligne entiere
                cel.EntireRow.Copy .Range("A" & derlig)
                Sheets("FTA" ).Visible = True
                Sheets("FTA" ).Select
                Range("A100" ).Select
       ActiveSheet.Paste
            End If
        Next cel
    End With
    'rafraichissement ecran
    Application.ScreenUpdating = True
End Sub
 
 :??:  :??:  

Reply

Marsh Posté le 24-03-2015 à 18:47:11    

J'ai réussi avec un filtre. Effectivement je suis parti au départ pour faire une usine à gaz
 
Private Sub Commandbutton1_Click()
Application.ScreenUpdating = False
Range("CA2" ).Clear
Range("CA2" ) = TextBox1
FTA.Hide
Sheets("Master planning" ).Select
 
  ActiveSheet.Range("A19:BM240" ).AutoFilter Field:=3, Criteria1:="=" & Range("CA2" ).Value
    Range("B7:BM241" ).Select
    Selection.Copy
    Sheets("FTA" ).Visible = True
    Sheets("FTA" ).Select
    Range("B100" ).Select
    ActiveSheet.Paste
  End Sub
 
Merci en tout cas Marc

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed