Modif d'un code

steph30

XLDnaute Nouveau
Bonjour,

Je pique des codes à gauche à droite pour faire des macros. Je suis une pure bidouilleuse.

J'ai le code suivant qui me sert à faire une recherche à partir d'une cellule cible. Par contre j'aimerai bien copier seulement des colonnes E à J et de M à S (en clair pas toute la ligne) de la feuille Base Clés sur la ligne A26 de la feuille Modification Clés.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastLig As Long
 
Application.ScreenUpdating = False
'Si la cellule modifié est L16
If Target.Address = "$L$16" Then
    'Les données seront copiées à partir de la ligne 26 de la feuille Consultation
    Range("A26").CurrentRegion.Clear
    'Si la cellule L16 est non vide
    If Target.Value <> "" Then
        With Sheets("Base Clés")
            'On enlève l'éventuel filtre automatique
            .AutoFilterMode = False
            'la ligne de la dernière cellule remplie de la colonne A de feuille Base
            LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
            'On filtre sur la colonne 12 de la feuille base, en prenant comme critère la valeur de L16 (Target)
            .Range("L1:L" & LastLig).AutoFilter Field:=1, Criteria1:=Target.Value
            'On copie les lignes issues du filtre auto (sans la ligne des titres)
            If .Range("A1:A" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
                .Range("A2:A" & LastLig).SpecialCells(xlCellTypeVisible).EntireRow.Copy Range("A26")
            End If
            'On enlève notre filtre automatique
            .AutoFilterMode = False
        End With
    End If
End If
End Sub

Est ce que quelqu'un sait comment je dois faire ?
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Modif d'un code

Salut Seph30,

C'est ici que ça se passe
Code:
If .Range("A1:A" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
                .Range("A2:A" & LastLig).SpecialCells(xlCellTypeVisible).EntireRow.Copy Range("A26")
Essaye un truc du style
Code:
If .Range("E1:E" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
                .Range("E2:J" & LastLig & ",M2:S" & LastLig).SpecialCells(xlCellTypeVisible).Copy Range("A26")

A+
 

steph30

XLDnaute Nouveau
Re : Modif d'un code

Encore moi est ce que tu sais comment je peux faire en sorte que quand la cellule cible est vide tout le tableau s'efface ?

Là quand la cellule cible est pleine, ça me copie les colonnes que je veux; quand j'efface la cellule cible, si des colonnes étaient vides les suivantes sont pas effacées.
 

Discussions similaires

Réponses
1
Affichages
282

Statistiques des forums

Discussions
312 765
Messages
2 091 883
Membres
105 084
dernier inscrit
lca.pertus