Copier sélection avec incrémentation

lebalme

XLDnaute Nouveau
Bonjour à tous,
J'ai réalisé un tableau dans lequel je souhaite copier une ligne sélectionnée vers le bas (C2:L2) "tant que" un nombre est présent dans la colonne B. J'arrive à faire cette opération avec des nombres mais pas avec une sélection.:confused:
Les archives du forum sont nombreuses et après quelques heures de recherche je n'ai pas trouvé ce que je cherche.

Voilà ce que j'écris :

Sub CopierLigne ()

Dim cel as Integer
Dim N as Integer

Set cel = Range("B2")
N = cel.End(xlDown).Row - 1
For i = 1 To N
While cel.Offset(i) <> 0
Range("C2:L2").Select
Selection.Copy
C'est là que je coince
Range("").Select = cel.Offset(i, 1)

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False
i = i + 1
Wend
Next i
End sub

Si vous avez de meilleures idées je suis preneur et vous remercie par avance pour votre aide.

Amicalement
 

porcinet82

XLDnaute Barbatruc
Re : Copier sélection avec incrémentation

Bonjour a tout les deux,

Pas sur que Michel réponde entièrement à la question. Mais je ne comprends pas tres bien ce que tu veux faire avec ton code.

Pour i allant de 1 à N (N=nb de cellules non vides entre la ligne 1 et la ligne N de la colonne B), tant que la ligne i est différente de 0 (et non <> de vide), tu copies la plage de cellule C2:L2. Jusque la ca va a peu pres.
Par contre, je comprends pas ce que tu veux faire avec ton Range("").Select = cel.Offset(i, 1)

Si tu pouvais nous filer plus d'info,

@+
 

lebalme

XLDnaute Nouveau
Re : Copier sélection avec incrémentation

michel_m à dit:
bonjour,
essaies avec:
dim cel as range

A+
Michel_M
Merci Michel pour la réponse

Dans la procédure j'avais déclaré comme variable : Dim cel as Range
J'avais mal recopié ce paragraphe dans mon message précédent !
Donc en conclusion - Dim cel as Range - ne fonctionne pas
 

lebalme

XLDnaute Nouveau
Re : Copier sélection avec incrémentation

Bonjour Porcinet82,
Merci de répondre à mon message et de t'intéressé à mon p'tit soucis.

C'est à partir de cette instruction - Range ("").select=etc. que je ne sais plus comment faire. Je suppose que la suite serait de copier la sélection sur la même ligne que i et une colonne à droite de B, d'où l'offset (i,1). Mais en fait je ne sais pas bien comment m'en sortir honorablement !

Dans Excel, j'ai donc un tableau avec plusieurs colonnes. Dans ce tableau je rentre des nombres dans la colonne B. Des formules sont dans les colonnes de C2 à L2. Je souhaite recopier ces formules vers le bas mais seulement si un nombre existe dans la colonne B. Voilà donc ou est mon problème...

J'espère avoir été un peu plus explicite maintenant

Amicalement
 

porcinet82

XLDnaute Barbatruc
Re : Copier sélection avec incrémentation

re,

J'ai complétement modifier la structure de ton code pour arriver au résultat suivant :
PHP:
Sub CopierLigne()
Dim i As Integer
For i = 2 To Range("B65536").End(xlUp).Row - 1
    If i = 2 And Not Cells(2, 2).Value = "" Then
        Range("C2:L2").Select
        Selection.Copy
    ElseIf Cells(2, 2).Value = "" Then
        MsgBox "Pas de valeur en B2"
        Exit Sub
    End If
    Cells(i, 2).Offset(0, 1).PasteSpecial Paste:=xlPasteFormulas
Next i
End Sub

Tiens nous au courant pour savoir si ca te convient ou non.

@+
 

lebalme

XLDnaute Nouveau
Re : Copier sélection avec incrémentation

Bonsoir Porcinet82,
J'ai l'impression que mon précédent messagene t'est pas arrivé, je reprends alors pour t'annoncer que ta version fonctionne parfaitement et que je suis entièrement satisfait par l'aide que tu m'as apportée. Je te remercie donc pour le temps que tu m'as accordé.

Depuis je planche sur un autre problème, maintenant je cherche à perfectionner mon projet... nul doute que bientôt jereviendrai sur le forum en demandant de l'aide ! c'est difficile d'apprendre à parler le Vbasic

Merci encore et à très bientôt

Philippe
 

Discussions similaires

Réponses
6
Affichages
294

Statistiques des forums

Discussions
312 506
Messages
2 089 124
Membres
104 040
dernier inscrit
pb91