Décalage de cellule

Fermé
thomhcv59 Messages postés 3 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 2 octobre 2013 - 27 sept. 2013 à 10:54
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 oct. 2013 à 18:11
Bonjour tous le monde ,

Etant débutant en vba ,

j'ai une plage de cellule A2:A6 dans la Feuil1 que j'aimerai copier dans la Feuil2 en B2:B6

mais si B2:B6 est non-vide alors il copie la plage vers la droite donc en C2:C6

Je pense qu'il faut utiliser range et offset mais je ne sais pas comment m'y prendre

Avez-vous une idée ?

Merci d'avance pour vos réponses

Thomas

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 27/09/2013 à 14:16
Bonjour
1 seule fois ou "ainsi de suite" ?
c.a.d. : si c2:c6 non vide alors copier en D2:D6 etc.

si 1 seule fois
Option Explicit

Sub decaler_coller()
Dim source()
source = Sheets(1).Range("A2:A6").Value
With Sheets(2)
If Application.CountA(.Range("B2:B6")) = 0 Then
.Range("B2:B6") = source
Else
.Range("C2:C6") = source
End If
End With
End Sub


Michel
0
thomhcv59 Messages postés 3 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 2 octobre 2013
2 oct. 2013 à 14:46
Bonjour Michel ,

Excuse moi pour le retard

c'est ainsi de suite

Thom
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 2/10/2013 à 18:34
Vite fait avant la soupe version "ainsi de suite"
Option Explicit
Sub hhhh()
Dim Col As Integer, Bloc()
Bloc = Sheets(1).Range("A2:A6").Value
With Sheets(2)
Col = 2
While Application.CountA(.Range(.Cells(2, Col), .Cells(6, Col))) > 0
Col = Col + 1
Wend
.Range(.Cells(2, Col), .Cells(6, Col)) = Bloc
.Select
End With

End Sub
0