Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

adapter un code

1 réponse
Avatar
Sunburn
Bonjour,
j'ai un code qui me permet d'insérer des lignes d'une autre feuille à un
endroit précis de ma feuille "10".
cependant, ma feuille "Bal2" est structurée comme ceci au niveau des
colonnes, de A à F :
COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1
et je voudrais copier les informations en "10", mais selon les colonnes
suivantes de A à G :
COMPTE / LIBELLE / vide / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1

il faudrait donc décaler les cellules copiées d'une colonne, après les 2
premières colonnes...

Merci de votre aide.
YANN

---------
'module qui permet d'importer les numéros de comptes en dessous des feuilles
maitresses
Sub IMPORTBAL()
rep = MsgBox("Voulez-vous importer les comptes sous les feuilles maitresses
?", vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("10").Select
Range("DETAIL10").Select
For Each C In Worksheets("Bal2").Range("A2:A1000")
n1 = Mid(C, 1, 2)
n2 = Mid(C, 1, 2)
n3 = Mid(C, 1, 2)
n4 = Mid(C, 1, 2)
n5 = Mid(C, 1, 2)
n6 = Mid(C, 1, 4)
n7 = Mid(C, 1, 4)
n11 = Mid(C, 1, 2)
n12 = Mid(C, 1, 4)
n13 = Mid(C, 1, 4)
n14 = Mid(C, 1, 4)
n15 = Mid(C, 1, 4)
n16 = Mid(C, 1, 4)
n21 = Mid(C, 1, 2)
n22 = Mid(C, 1, 4)
n23 = Mid(C, 1, 3)
n24 = Mid(C, 1, 3)
n25 = Mid(C, 1, 4)
n26 = Mid(C, 1, 4)
If n1 = 10 Or n2 = 11 Or n3 = 12 Or n4 = 13 Or n5 = 14 Or n6 = 6874 Or n7 =
7874 _
Or n11 = 15 Or n12 = 6815 Or n13 = 6865 Or n14 = 6875 Or n15 = 7865 Or n16 =
7875 _
Or n21 = 16 Or n22 = 5186 Or n23 = 661 Or n24 = 512 Or n25 = 6617 Or n26 =
6861 Then
Selection.EntireRow.Insert Shift:=xlDown
ActiveCell.Offset(0, 0).Select
Range(C, C.Offset(0, 255).End(xlToLeft)).Copy
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
End Sub
------

1 réponse

Avatar
michdenis
Dans ta feuille 10 , tu inscris tes étiquettes de colonne
que tu désires conserver en respectant exactement le
libellé de ta feuille bal2 (évidemment tu enlèves le
libellé indésiré.

Toujours en Feuil2, tu appelles la commande Filtre élaboré
En t'assurant de ne pas avoir mis ton curseur dans la ligne
où tu viens de copier les en-têtes.

lorsque tu viens le temps de remplir la source, tu
sélectionne la feuille10 et tu définis toute la plage
et tu actives le bouton radio "copier ailleurs" et tu
lui donne l'adresse de ta ligne d'entête de la feuil10
sans mentionner de critère, et tu vas obtenir exactement
ce que tu désires.



"Sunburn" a écrit dans le message de groupe de
discussion :
Bonjour,
j'ai un code qui me permet d'insérer des lignes d'une autre feuille à un
endroit précis de ma feuille "10".
cependant, ma feuille "Bal2" est structurée comme ceci au niveau des
colonnes, de A à F :
COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1
et je voudrais copier les informations en "10", mais selon les colonnes
suivantes de A à G :
COMPTE / LIBELLE / vide / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1

il faudrait donc décaler les cellules copiées d'une colonne, après les 2
premières colonnes...

Merci de votre aide.
YANN

---------
'module qui permet d'importer les numéros de comptes en dessous des feuilles
maitresses
Sub IMPORTBAL()
rep = MsgBox("Voulez-vous importer les comptes sous les feuilles maitresses
?", vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("10").Select
Range("DETAIL10").Select
For Each C In Worksheets("Bal2").Range("A2:A1000")
n1 = Mid(C, 1, 2)
n2 = Mid(C, 1, 2)
n3 = Mid(C, 1, 2)
n4 = Mid(C, 1, 2)
n5 = Mid(C, 1, 2)
n6 = Mid(C, 1, 4)
n7 = Mid(C, 1, 4)
n11 = Mid(C, 1, 2)
n12 = Mid(C, 1, 4)
n13 = Mid(C, 1, 4)
n14 = Mid(C, 1, 4)
n15 = Mid(C, 1, 4)
n16 = Mid(C, 1, 4)
n21 = Mid(C, 1, 2)
n22 = Mid(C, 1, 4)
n23 = Mid(C, 1, 3)
n24 = Mid(C, 1, 3)
n25 = Mid(C, 1, 4)
n26 = Mid(C, 1, 4)
If n1 = 10 Or n2 = 11 Or n3 = 12 Or n4 = 13 Or n5 = 14 Or n6 = 6874 Or n7 7874 _
Or n11 = 15 Or n12 = 6815 Or n13 = 6865 Or n14 = 6875 Or n15 = 7865 Or n16 7875 _
Or n21 = 16 Or n22 = 5186 Or n23 = 661 Or n24 = 512 Or n25 = 6617 Or n26 6861 Then
Selection.EntireRow.Insert Shift:=xlDown
ActiveCell.Offset(0, 0).Select
Range(C, C.Offset(0, 255).End(xlToLeft)).Copy
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next
End Sub
------