macro: coller si la cellule a coté n'est pas vide

king905

XLDnaute Nouveau
bonjour
je voudrais pouvoir copier une cellule et la coller que plusieurs cellule seulement si les cellules a coté sont pas vide.

je crée un petit tableau pour test :

dans la feuille 1 j'ai les donnée dans un formulaire (enfin c'est juste un test)
je voudrais coller les données du formulaire sur un base (feuille 2 "base")

mais le probléme c'est que dans le tableau le nombre de ligne renseigner change a chaque formulaire, pour cela j'utilise un filtre, et ça marche.

Mais je voudrais coller le n° (cellule C5 dans l'exemple) dans la colonne A de la feuille base par rapport au nombre de ligne renseigner sur la colonne B de la feuille Base.

Merci d'avance
Regarde la pièce jointe test.xlsm
 

Pièces jointes

  • test.xlsm
    17.3 KB · Affichages: 67
  • test.xlsm
    17.3 KB · Affichages: 66
G

Guest

Guest
Re : macro: coller si la cellule a coté n'est pas vide

Bonjour et bienvenue sur le forum,

Si j'ai tout compris:
Code:
Sub Macro2()
    Application.ScreenUpdating = False    ' Stoppe le rafraichissement écran, Evite le flashage
    'Filtrage de la plage
    ActiveSheet.Range("$B$7:$E$18").AutoFilter Field:=1, Criteria1:="<>"
    'Copy des données
    Range("B8:D14").Copy
    'Collage des valeurs dans la feuille Base
    'Voir l'aide excel vba sur End()
    Sheets("Base").Range("B" & Application.Rows.Count).End(xlUp)(2).PasteSpecial _
                Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
    ActiveSheet.Range("B8:D14").AutoFilter
    
    'Remettre à jour l'écran
    Application.ScreenUpdating = True
End Sub

A+
 

CHALET53

XLDnaute Barbatruc
Re : macro: coller si la cellule a coté n'est pas vide

Bonjour,

Mais je voudrais coller le n° (cellule C5 dans l'exemple) dans la colonne A de la feuille base par rapport au nombre de ligne renseigner sur la colonne B de la feuille Base.

Merci de préciser : je ne comprends pas ce que tu veux faire
a+

Pas vu Hasco : bonjour
 
G

Guest

Guest
Re : macro: coller si la cellule a coté n'est pas vide

Re,

Dans ma première réponse j'avais zappé cette histoire de numéro de ligne.

Version avec numéro de ligne:
Code:
Sub Macro2()
    Dim nbRows As Long
    Application.ScreenUpdating = False    ' Stoppe le rafraichissement écran, Evite le flashage
    
    'Filtrage de la plage et comptage des lignes filtrées
    With ActiveSheet.Range("$B$7:$E$18")
        'Filtrage des cellules vides
        .AutoFilter Field:=1, Criteria1:="<>"
        
        'Employer la fonction de feuille de calcul 'Sous.Total' pour avoir le nombre de ligne filtrées
        nbRows = Application.Subtotal(3, .Columns(1)) - 1    '-1 pour ne pas compter la ligne d'entête
    
    End With
    
    'Si au moins 1 ligne affichée
    If nbRows > 0 Then
    
        'Copy des données
        Range("B8:D18").Copy
        'Collage des valeurs dans la feuille Base
        'Voir l'aide excel vba sur End()
        
        With Sheets("Base").Range("A" & Application.Rows.Count).End(xlUp)(2)
            .Offset(, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                      SkipBlanks:=False, Transpose:=False
            .Resize(nbRows).Value = Sheets("Feuil1").Range("C5").Value
        End With
        
        MsgBox nbRows & " ligne(s) exportée(s)"
    End If
    
    'Annuler le filtre
    ActiveSheet.Range("B8:D14").AutoFilter
    
    'Remettre à jour l'écran
    Application.ScreenUpdating = True
    
End Sub

A+
 
Dernière modification par un modérateur:

king905

XLDnaute Nouveau
Re : macro: coller si la cellule a coté n'est pas vide

Merci Bcp pour la réponse rapide; et désolé si j’étais pas clair , mon problème est que je voulais copier la cellule C5 et la coller dans la colonne B de la feuille "base" par rapport au nombre de ligne coller dans la colonne B de la feuille Base,

la macro de Hasco marche super !!! mais je voudrais savoir comment t'as fait si ce n'est pas trop demander !
encore merci a vous deux "Hasco & chalet53" et aussi a tout le monde pour votre énorme mais vraiment énorme aide que vous apporter aux débutants comme moi.
Respect messieurs, dames.
 
G

Guest

Guest
Re : macro: coller si la cellule a coté n'est pas vide

Re bonjour,

J'ai ré-éditer mon post précédent pour inclure de nouveaux commentaires dans la macro.

Pour ce qui est des méthode .End, .Offset, .Resize voir l'aide vba excel.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux