RESOLU par vgendron coller 1 ligne sur 2

castor30

XLDnaute Occasionnel
Bonjour,
Le code ci-dessous ne fonctionne pas, pouvez-vous me dire ou cela blesse

Code:
Sub Import()       ' Coller à partir de A2 puis une ligne sur deux
    Sheets("Base").Select
    Application.Goto Reference:="MalistNom"
    Selection.Copy
    j = 1
        For i = 1 To 2 Step 3
    j = j + 2
    Sheets("Visite").Range("A2").Paste
        Next i
   
    Sheets("Base").Select
    Application.CutCopyMode = False
End Sub

en vous remerciant.
 

vgendron

XLDnaute Barbatruc
bonjour
au hasard:
For i = 1 To 2 Step 3

et manque un next j
ah non. pardon. je croyais avoir vu un "for j"

avec une indentation du code, ce serait plus lisible
VB:
Sub Import()       ' Coller à partir de A2 puis une ligne sur deux
   
    Sheets("Base").Select
    Application.Goto Reference:="MalistNom"
    Selection.Copy
    j = 1
    For i = 1 To 2 Step 3 ' la boucle ne devrait pas aller bien loin.. de 1 à 2 par step de 3
        j = j + 2
        Sheets("Visite").Range("A2").Paste 'quel intéret de boucler sur des indices si au final tu colles toujours en A2
    Next i
   
    Sheets("Base").Select
    Application.CutCopyMode = False
End Sub
 

GIBI

XLDnaute Impliqué
Bonjour,

la fonction range désigne une plage

dans l'exemple range = "A2:d2"

sub Import() ' Coller à partir de A2 puis une ligne sur deux
Sheets("Base").Select
Application.Goto Reference:="MalistNom"
Selection.Copy
J = 2
For i = 1 To 4 ' copy 4 fois
ActiveSheet.Paste Worksheets("Visite").Range("A" & J & ":" & "d" & J) ' range est une plage
J = J + 2
Next i

Sheets("Base").Select
Application.CutCopyMode = False
End Sub
 

vgendron

XLDnaute Barbatruc
En fait ce que je voudrais faire, c'est copier de la feuille Base la zone dynamique nommée MalistNom
sur la feuille Visite en A2 une ligne sur deux

je ne comprend pas bien le "une ligne sur deux"

dans la zone "Malistnom", il y a aaa,ccc,ddd eee,fff, ggg, hhh, iii,jjj
et dans la feuille visite..
je vois trois fois aaa, ccc puis eee fff..
je ne visualise pas bien le "une ligne sur deux"..
 

castor30

XLDnaute Occasionnel
Dans la feuille Visite, supprime les lignes 1 à 10 et importe MalistNom dans la feuille Visite
ce début de code me paraissant (sic) bon
Sub Import() ' Coller à partir de A2 puis une ligne sur deux
Sheets("Base").Select
Application.Goto Reference:="MalistNom"
Selection.Copy
j = 1
For i = 1 To 2 Step 3
j = j + 2
 

vgendron

XLDnaute Barbatruc
peut etre ca......
un rayon de soleil vient de frapper ma boule de cristal.. :)

VB:
Sub Import3() ' Coller à partir de A2 puis une ligne sur deux
Sheets("Base").Select
'Application.Goto Reference:="MalistNom"

For i = 1 To Range("MaListNom").Rows.Count Step 1
    With Sheets("Visite") '.Range("A2:D2")
        If .Range("A2") = "" Then
            Range("MaListNom").Rows(i).Copy Destination:=.Range("A2")
        Else
            Range("MaListNom").Rows(i).Copy Destination:=.Range("A65536").End(xlUp).Offset(2, 0)
        End If
    End With
Next i
       
Sheets("Base").Select
Application.CutCopyMode = False
End Sub
 

castor30

XLDnaute Occasionnel
gendron, je ne sais comment te remercier c'est vraiment super
je pense que pour adapter mon second code pour MalistAdresse, il me suffit de changer :
Range("MaListNom").Rows(i).Copy Destination:=.Range("A2")
par
Range("MaListNom").Rows(i).Copy Destination:=.Range("A3")
 

vgendron

XLDnaute Barbatruc
euh.. je ne sais pas trop où tu souhaites coller les adresses..
mais à cause de ceci:
Code:
.Range("A65536").End(xlUp).Offset(2, 0)
ca ne va pas fonctionner..
du moins. ca collera les adresses à partir de la ligne 18...

Ne souhaiterais tu pas une feuille visite avec
ligne2: data de MaListNom
ligne 3: data de MaListeAdresses
ligne 4: data de MaListNom
.... ?
 

castor30

XLDnaute Occasionnel
ben non ça marche pas

'Code de vgendron (modifié par moi) sur Excel Downloads
Sub Import() ' Coller à partir de A3 puis une ligne sur deux
Sheets("Base").Select
'Application.Goto Reference:="MalistAdresse"

For i = 1 To Range("MalistAdresse").Rows.Count Step 1
With Sheets("Visite")
If .Range("A3") = "" Then
Range("MalistAdresse").Rows(i).Copy Destination:=.Range("A3")
Else
Range("MalistAdresse").Rows(i).Copy Destination:=.Range("A65536").End(xlUp).Offset(2, 0)
End If
End With
Next i

Sheets("Base").Select
Application.CutCopyMode = False
End Sub
 

vgendron

XLDnaute Barbatruc
VB:
Sub Import() ' Coller à partir de A2 puis une ligne sur deux
Sheets("Base").Select
'Application.Goto Reference:="MalistNom"

For i = 1 To Range("MaListNom").Rows.Count Step 1
    With Sheets("Visite") '.Range("A2:D2")
        If .Range("A2") = "" Then
            Range("MaListNom").Rows(i).Copy Destination:=.Range("A2")
            Range("MaListAdresse").Rows(i).Copy Destination:=.Range("A3")
        Else
            Range("MaListNom").Rows(i).Copy Destination:=.Range("A65536").End(xlUp).Offset(1, 0)
            Range("MaListAdresse").Rows(i).Copy Destination:=.Range("A65536").End(xlUp).Offset(1, 0)
           
        End If
    End With
Next i

Sheets("Base").Select
Application.CutCopyMode = False
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 213
Membres
103 158
dernier inscrit
laufin