Numéro de colonne variable, ne pas réécrire x fois la même ligne de code VBA

Jonathan1986

XLDnaute Nouveau
Bonjour à tous, bonjour le forum,

Voilà, je développe une application excel et je me suis plusieurs fois posé la question sans la poster sur aucun forum, étant débutant en VBA je ne vois pas trop comment faire ...

Merci beaucoup d'avance pour celui qui a un peu de temps pour regarder cela, le problème est assez simple, je cherche a rendre les numéro de colonnes variables, car ce type d'opération je la répète plusieurs fois

Encore merci
A+
Jo

For i = 2 To L
WB.Sheets("BDDD").Range("A" & i) = xlSheet.Range("A" & i)
WB.Sheets("BDDD").Range("B" & i) = xlSheet.Range("B" & i)
WB.Sheets("BDDD").Range("C" & i) = xlSheet.Range("C" & i)
WB.Sheets("BDDD").Range("D" & i) = xlSheet.Range("D" & i)
WB.Sheets("BDDD").Range("E" & i) = xlSheet.Range("E" & i)
WB.Sheets("BDDD").Range("F" & i) = xlSheet.Range("F" & i)
WB.Sheets("BDDD").Range("G" & i) = xlSheet.Range("G" & i)
WB.Sheets("BDDD").Range("H" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("I" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("J" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("K" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("L" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("M" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("N" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("O" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("P" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("Q" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("R" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("S" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("T" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("U" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("V" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("W" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("X" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("Y" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("Z" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AA" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AB" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AC" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AD" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AE" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AF" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AG" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AH" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AI" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AJ" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AK" & i) = xlSheet.Range("H" & i)
WB.Sheets("BDDD").Range("AL" & i) = xlSheet.Range("H" & i)
Next i
 

Dranreb

XLDnaute Barbatruc
Re : Numéro de colonne variable, ne pas réécrire x fois la même ligne de code VBA

Bonjour.
VB:
wb.Worksheets("BDDD").[A2:G2].Resize(L - 1).Value = xlSheet.[A2:G2].Resize(L - 1).Value
wb.Worksheets("BDDD").[H2:AL2].Resize(L - 1).Value = xlSheet.[H2].Value
Non attendez je suis allé un peu vite…
VB:
wb.Worksheets("BDDD").[A2:G2].Resize(L - 1).Value = xlSheet.[A2:G2].Resize(L - 1).Value
wb.Worksheets("BDDD").[H2:AL2].Resize(L - 1).Value = xlSheet.[H2].Resize(L - 1).Value
À tester, je n'ai pu le faire faute de classeur joint.
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Numéro de colonne variable, ne pas réécrire x fois la même ligne de code VBA

Bonjour Jo,

Essaie comme ceci peut-être (pas testé):

For i = 2 To L
If i < 8 The
WB.Sheets("BDDD").Range("A" & i & ":G" & i).Value = xlSheet.Range("A" & i& ":G" & i).Value
Else
WB.Sheets("BDDD").Range("H" & i & ":AL" & i).Value = xlSheet.Range("H" & i).Value
End If
Next i
Cordialement.
 

Jonathan1986

XLDnaute Nouveau
Re : Numéro de colonne variable, ne pas réécrire x fois la même ligne de code VBA

Bonjour Dranreb! Bonjour le forum,
Tout d'abord merci pour cette réponse rapide.
Pour le fichier, il est trop lourd, et fait appel à plein de fichiers externes donc pas simple. :(

Le marco s'execute a l'ouverture juste pour importer les données d'un tableau contenus dans un classeur externe (mon code ci dessus est faux, il recopie les cellules au meme endroit dans le fichier actif, donc je n'aurais besoin que de la première ligne que tu as écris).

Je vais essayer ton code mais serait-il possible d'avoir des explications sur ce que tu as ecris?
J'imagine que [A2:AH2] te copie la ligne?
Ensuite je ne comprends pas le resize (L-1) et (I-1)? ..

Merci d'avance pour ta solidarité ;)
A+
Jo
 

Discussions similaires

Statistiques des forums

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