Transfert de données | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 08-01-2023 12h17
Bonjour tout le monde mon projet avance petit à petit Actuellement une macro me recopie toutes les données de ma feuille de calcul vers une autre feuille Mon desir serait de pouvoir ajouter une page supplementaire dans mes devis car souvent les lignes actuelles sont insuffisantes. Mon probleme est que quand je veux recopier j'ai un message qui me dit " Trop de caractere de continuité de ligne" au départ et ce qui va tres bien : Sub Transfert() Dim Ligne As Long Dim colonne As Long Dim Cellule As Range Dim Lg Dim Derli As Long Dim i As Long, sStr As String, Ar() As String 'Application.ScreenUpdating = False Sheets("SAISIE").Select Sheets("ShArchive").Visible = True sStr = "I6,I5,C12,G8,H9,G10,h12,B15,C15,H15,I15,J15,K15," & _ "B16,C16,H16,I16,J16,K16," & _ "B17,C17,H17,I17,J17,K17,B18,C18,H18,I18,J18,K18," & _ "B19,C19,H19,I19,J19,K19,B20,C20,H20,I20,J20,K20,B21,C21,H21,I21,J21,K21," & _ "B22,C22,H22,I22,J22,K22,B23,C23,H23,I23,J23,K23,B24,C24,H24,I24,J24,K24," & _ "B25,C25,H25,I25,J25,K25,B26,C26,H26,I26,J26,K26,B27,C27,H27,I27,J27,K27," & _ "B28,C28,H28,I28,J28,K28,B29,C29,H29,I29,J29,K29,B30,C30,H30,I30,J30,K30," & _ "B31,C31,H31,I31,J31,K31,B32,C32,H32,I32,J32,K32,B33,C33,H33,I33,J33,K33," & _ "B34,C34,H34,I34,J34,K34,B35,C35,H35,I35,J35,K35,B36,C36,H36,I36,J36,K36," & _ "B37,C37,H37,I37,J37,K37,B38,C38,H38,I38,J38,K38,B39,C39,H39,I39,J39,K39," & _ "B40,C40,H40,I40,J40,K40,B41,C41,H41,I41,J41,K41,B42,C42,H42,I42,J42,K42," & _ "B43,C43,H43,I43,J43,K43,B44,C44,H44,I44,J44,K44,B45,C45,H45,I45,J45,K45," & _ "B46,C46,H46,I46,J46,K46,B47,C47,H47,I47,J47,K47,B48,C48,H48,I48,J48,K48," & _ "B49,C49,H49,I49,J49,K49,B50,C50,H50,I50,J50,K50,B51,C51,H51,I51,J51,K51," & _ "B52,C52,H52,I52,J52,K52,J54,B55,B56,B57," & _ "C55,C56,C57,D55,D56,D57,F58,F59,J55,J56,J57,J58,j59" Ar = Split(sStr, ",") Ligne = Worksheets("ShArchive").Range("A" & Rows.Count).End(xlUp).Row + 1 Lg = Application.Match(Range(Ar(0)), Sheets("ShArchive").Range("A1:A" & Ligne), 0) ' Si erreur : Pas de doublon ' sinon Lg contient la ligne en double If Not IsError(Lg) Then Ligne = Lg End If ' Remplit les colonnes For i = LBound(Ar) To UBound(Ar) colonne = colonne + 1 Worksheets("ShArchive").CellS(Ligne, colonne) = Worksheets("SAISIE").Range(Ar(i)) Next i 'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub j'aimerai pouvoir etendre cette sauvegarde jusqu'a: sStr = "I6,I5,C12,G8,H9,G10,h12,B15,C15,H15,I15,J15,K15," & _ "B16,C16,H16,I16,J16,K16," & _ "B17,C17,H17,I17,J17,K17,B18,C18,H18,I18,J18,K18," & _ "B19,C19,H19,I19,J19,K19,B20,C20,H20,I20,J20,K20,B21,C21,H21,I21,J21,K21," & _ "B22,C22,H22,I22,J22,K22,B23,C23,H23,I23,J23,K23,B24,C24,H24,I24,J24,K24," & _ "B25,C25,H25,I25,J25,K25,B26,C26,H26,I26,J26,K26,B27,C27,H27,I27,J27,K27," & _ "B28,C28,H28,I28,J28,K28,B29,C29,H29,I29,J29,K29,B30,C30,H30,I30,J30,K30," & _ "B31,C31,H31,I31,J31,K31,B32,C32,H32,I32,J32,K32,B33,C33,H33,I33,J33,K33," & _ "B34,C34,H34,I34,J34,K34,B35,C35,H35,I35,J35,K35,B36,C36,H36,I36,J36,K36," & _ "B37,C37,H37,I37,J37,K37,B38,C38,H38,I38,J38,K38,B39,C39,H39,I39,J39,K39," & _ "B40,C40,H40,I40,J40,K40,B41,C41,H41,I41,J41,K41,B42,C42,H42,I42,J42,K42," & _ "B43,C43,H43,I43,J43,K43,B44,C44,H44,I44,J44,K44,B45,C45,H45,I45,J45,K45," & _ "B46,C46,H46,I46,J46,K46,B47,C47,H47,I47,J47,K47,B48,C48,H48,I48,J48,K48," & _ "B49,C49,H49,I49,J49,K49,B50,C50,H50,I50,J50,K50,B51,C51,H51,I51,J51,K51," & _ "B52,C52,H52,I52,J52,K52,B53,C53,H53,I53,J53,K53,B54,C54,H54,I54,J54,K54," & _ "B55,C55,H55,I55,J55,K55,B56,C56,H56,I56,J56,K56,B57,C57,H57,I57,J57,K57," & _ "B58,C58,H58,I58,J58,K58,B59,C59,H59,I59,J59,K59,B60,C60,H60,I60,J60,K60," & _ "B61,C61,H61,I61,J61,K61,B62,C62,H62,I62,J62,K62,B63,C63,H63,I63,J63,K63," & _ "B63,C63,H63,I63,J63,K63,B64,C64,H64,I64,J64,K64,B65,C65,H65,I65,J65,K65," & _ "B66,C66,H66,I66,J66,K66,B85,C85,H85,I85,J85,K85,B86,C86,H86,I86,J86,K86," & _ "B87,C87,H87,I87,J87,K87,B88,C88,H88,I88,J88,K88,B89,C89,H89,I89,J89,K89," & _ "B90,C90,H90,I90,J90,K90,B91,C91,H91,I91,J91,K91,B92,C92,H92,I92,J92,K92," & _ "B93,C93,H93,I93,J93,K93,B94,C94,H94,I94,J94,K94,B95,C95,H95,I95,J95,K95," & _ "B95,C95,H95,I95,J95,K95,B96,C96,H96,I96,J96,K96,B97,C97,H97,I97,J97,K97," & _ "B98,C98,H98,I98,J98,K98,B99,C99,H99,I99,J99,K99,B100,C100,H100,I100,J100,K100," & _ "B101,C101,H101,I101,J101,K101,B102,C102,H102,I102,J102,K102,B103,C103,H103," & _ "I103,J103,K103,B104,C104,H104,I104,J104,K104,B105,C105,H105,I105,J105,K105," & _ "B106,C106,H106,I106,J106,K106,B107,C107,H107,I107,J107,K107,B108,C108,H108," & _ "I108,J108,K108,B109,C109,H109,I109,J109,K109,B109,C109,H109,I109,J109,K109," & _ "B110,C110,H110,I110,J110,K110,B111,C111,H111,I111,J111,K111,B112,C112,H112," & _ "I112,J112,K112,B113,C113,H113,I113,J113,K113,B114,C114,H114,I114,J114,K114," & _ "B115,C115,H115,I115,J115,K115,B116,C116,H116,I116,J116,K116,B117,C117,H117," & _ "I117,J117,K117,B118,C118,H118,I118,J118,K118,B119,C119,H119,I119,J119,K119," & _ "B121,C121,H121,I121,J121,K121,B122,C122,H122,I122,J122,K122,B120,C120,H120," & _ "I120,J120,K120,J124,B125,B126,B127," & _ "C125,C126,C127,D125,D126,D127,F128,F129,J125,J126,J127,J128,j129" y a t'il un moyen de contourner cette erreur ? Merci et bon dimanche à tous |
|
|
Re: Transfert de données | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 08-01-2023 12h54
Bonjour tactic6, le Forum,
On en apprend tous les jours... Et moi, je découvre aujourd'hui cette limitation VBA que je n'avais pour ma part jamais rencontré encore ! Donc, tout d'abord merci à toi tactic6 pour cette découverte, c'est toujours intéressant à savoir.
Du coup, une petite recherche dans la doc Microsoft et tu tomberas sur cet article :
Pour rappel, utiliser des caractères de continuité de ligne n'est pas une obligation, c'est tout simplement une façon plus élégante de présenter du code afin qu'il soit plus facile à lire et à comprendre. Tu devrais donc pouvoir prolonger tes lignes pour contourner cette limitation dans l'éditeur.
De mémoire (à vérifier) je crois que l'éditeur VBE est limité à 1024 caractères sur une même ligne.
Bien cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Transfert de données | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 08-01-2023 14h58
Merci je vais donc me servir de l'enregistreur pour en faire une autre |
|
|
Re: Transfert de données | ||
---|---|---|
Inscription: 12/06/2008
De Ile de France Sud
Messages:
147
Système d'exploitation: PC Version Excel utilisée: 2003 _ 2010 |
Posté le : 08-01-2023 20h56
Bonsoir tactic6, Je ne suis pas certain d'avoir compris ce que tu veux faire (je n'ai pas tout décortiqué) : créer une image "partielle" de la feuille "saisie" vers la feuille "archive" ET au même emplacement ? Si c'est cela, je regarderai du côté des "tableaux", comme ceci : Sub tableau_plage() Dim P1 P1 = Feuil1.Range("B15:C129").Value Feuil2.Range("B15:C129").Value = P1 ' on pourrait écrire : Feuil2.Range("B300:C414").Value = P1 P2 = Feuil1.Range("H15:K129").Value Feuil2.Range("H15:K129").Value = P2 End Sub Une autre idée : Sub Copie() ' Range("b1:c1", "f1:j1").Copy Range("B" & ActiveCell.Row - 1) ' Range("G1", "J1").Copy Range("B" & ActiveCell.Row) End Sub Il restera à traiter les cellules éparses. A toi d'adapter Eric |
|
|
Re: Transfert de données | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 09-01-2023 09h59
Bonjour Eric merci de ta participation Pour le moment je n'ai pas réussi à réaliser cette commande Le probleme vient de la grosse quantité de cellule à traiter ( je suppose) J'ai essayé avec Range, array mais rien n'y fait
Pour faire simple J'ai une plage de cellule que j'aimerai recopier à l'horizontale à la suite de la premiere ligne non remplie de la feuille Archives cette plage est composée d'environ 600 cellules à copier coller soit: I6,I5,C12,G8,H9,G10,h12,B15,C15,H15,I15,J15,K15,B16,C16,H16,I16,J16,K16,B17,C17,H17,I17,J17,K17,B18,C18,H18,I18,J18,K18, B19,C19,H19,I19,J19,K19,B20,C20,H20,I20,J20,K20,B21,C21,H21,I21,J21,K21,B22,C22,H22,I22,J22,K22,B23,C23,H23,I23,J23,K23,B24,C24,H24,I24,J24,K24, B25,C25,H25,I25,J25,K25,B26,C26,H26,I26,J26,K26,B27,C27,H27,I27,J27,K27,B28,C28,H28,I28,J28,K28,B29,C29,H29,I29,J29,K29,B30,C30,H30,I30,J30,K30, B31,C31,H31,I31,J31,K31,B32,C32,H32,I32,J32,K32,B33,C33,H33,I33,J33,K33,B34,C34,H34,I34,J34,K34,B35,C35,H35,I35,J35,K35,B36,C36,H36,I36,J36,K36, B37,C37,H37,I37,J37,K37,B38,C38,H38,I38,J38,K38,B39,C39,H39,I39,J39,K39,B40,C40,H40,I40,J40,K40,B41,C41,H41,I41,J41,K41,B42,C42,H42,I42,J42,K42, B43,C43,H43,I43,J43,K43,B44,C44,H44,I44,J44,K44,B45,C45,H45,I45,J45,K45,B46,C46,H46,I46,J46,K46,B47,C47,H47,I47,J47,K47,B48,C48,H48,I48,J48,K48, B49,C49,H49,I49,J49,K49,B50,C50,H50,I50,J50,K50,B51,C51,H51,I51,J51,K51,B52,C52,H52,I52,J52,K52,B53,C53,H53,I53,J53,K53,B54,C54,H54,I54,J54,K54, B55,C55,H55,I55,J55,K55,B56,C56,H56,I56,J56,K56,B57,C57,H57,I57,J57,K57,B58,C58,H58,I58,J58,K58,B59,C59,H59,I59,J59,K59,B60,C60,H60,I60,J60,K60, B61,C61,H61,I61,J61,K61,B62,C62,H62,I62,J62,K62,B63,C63,H63,I63,J63,K63,B63,C63,H63,I63,J63,K63,B64,C64,H64,I64,J64,K64,B65,C65,H65,I65,J65,K65, B66,C66,H66,I66,J66,K66,B85,C85,H85,I85,J85,K85,B86,C86,H86,I86,J86,K86,B87,C87,H87,I87,J87,K87,B88,C88,H88,I88,J88,K88,B89,C89,H89,I89,J89,K89, B90,C90,H90,I90,J90,K90,B91,C91,H91,I91,J91,K91,B92,C92,H92,I92,J92,K92,B93,C93,H93,I93,J93,K93,B94,C94,H94,I94,J94,K94,B95,C95,H95,I95,J95,K95, B95,C95,H95,I95,J95,K95,B96,C96,H96,I96,J96,K96,B97,C97,H97,I97,J97,K97,B98,C98,H98,I98,J98,K98,B99,C99,H99,I99,J99,K99,B100,C100,H100,I100,J100,K100, B101,C101,H101,I101,J101,K101,B102,C102,H102,I102,J102,K102,B103,C103,H103,I103,J103,K103,B104,C104,H104,I104,J104,K104,B105,C105,H105,I105,J105,K105, B106,C106,H106,I106,J106,K106,B107,C107,H107,I107,J107,K107,B108,C108,H108,I108,J108,K108,B109,C109,H109,I109,J109,K109,B109,C109,H109,I109,J109,K109, B110,C110,H110,I110,J110,K110,B111,C111,H111,I111,J111,K111,B112,C112,H112,I112,J112,K112,B113,C113,H113,I113,J113,K113,B114,C114,H114,I114,J114,K114, B115,C115,H115,I115,J115,K115,B116,C116,H116,I116,J116,K116,B117,C117,H117,I117,J117,K117,B118,C118,H118,I118,J118,K118,B119,C119,H119,I119,J119,K119, B121,C121,H121,I121,J121,K121,B122,C122,H122,I122,J122,K122,B120,C120,H120,I120,J120,K120,J124,B125,B126,B127,C125,C126,C127,D125,D126,D127,F128,F129,J125,J126,J127,J128,j129
une idée ??
|
|
|
Re: Transfert de données | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 09-01-2023 12h16
Voici la solution si un jour ça vous arrive faire des lignes de texte plus longues pour avoir moins de trait de continuation '_' comme ceci "I6,I5,C12,G8,H9,G10,h12,B15,C15,H15,I15,J15,K15,B16,C16,H16,I16,J16,K16,B17,C17,H17,I17,J17,K17,B18,C18,H18,I18,J18,K18,B19,C19,H19,I19,J19,K19," & _ Merci à tous |
|
|