• Initiateur de la discussion Initiateur de la discussion Phil
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Phil

Guest
Bonjour,
Est-ce qu'il est possible de simplifier ma macro si c'est possible
du genre un compteur pour alimenter mon tblvar et pour ensuite
le decharger dans ma nouvelle feuille...!!
Merci pour votre aide
Phil
----------------------------------------------------------------------------
Public tblvar(5, 1) As String
Public nlFin As Integer
Dim valeur As Integer
Dim Cpt As Long
Sub NewGestion()
Windows('Wordversexcel.XLS').Activate
Sheets('Données').Select
Range('A1').Select
Sheets('Données').Unprotect
tblvar(1, 1) = Range('A1').Value
tblvar(2, 1) = ActiveCell.Offset(0, 1)
tblvar(3, 1) = ActiveCell.Offset(0, 2)
tblvar(4, 1) = ActiveCell.Offset(0, 3)
Sheets('Données').Protect
Workbooks.Open Filename:='I:\\temp\\NewGestion.xls'
Sheets('Priorités').Select
Range('A8').End(xlDown).Offset(1, 0).Select
ActiveCell.Value = tblvar(1, 1)
ActiveCell.Offset(0, 2) = tblvar(2, 1)
ActiveCell.Offset(0, 3) = tblvar(3, 1)
ActiveCell.Offset(0, 4) = tblvar(4, 1)
ActiveCell.Offset(0, 5) = tblvar(5, 1)
 
Bonjour,

Je suis donc obliger de faire avec n ligne, il n'a y donc rien de plus simple pour charger et des charger ces valeurs depuis mon tableau
tabl.

Merci pour votre aide et bonne journée


Phil
 
Salut !

Tu as raison, il y a plus simple :

Dim Tablo as Variant
Tablo = Range('A1😀1')
Dim i as integer

Workbooks.Open Filename:='I:tempNewGestion.xls'
Sheets('Priorités').Activate

i = Sheets('Priorités').Range('A8').End(xlDown).Offset(1, 0).Row

Range('A' & i & ':' & 'D' & i ) = Tablo

A tester


@ +++

Moa

Message édité par: Moa, à: 06/06/2005 15:29

Message édité par: Moa, à: 06/06/2005 15:33
 
RE !

Attention, si ton tableau doit s'agrandir et avoir plusieurs lignes ou colonnes, tu devras modifier la macro en conséquence.

Ou alors, créer dès à présent une ou plusieurs autres variables.

Exemple, si ton tableau doit comporter quatre lignes, ajouter 3 à 'i' à cet endroit :

Range('A' & i & ':' & 'D' & i + 3) = Tablo

De même, si tu dois rajouter une colonne par la suite, créer tout de suite une variable, pour ton nombre de colonnes exactes.

Car en fait la plage de cellules de copie de ton tableau doit-être de même dimension que la plage de ton tableau.

Exemple : Si tu n'écrivais que :

Range('A' & i ') = Tablo

Tu n'aurais que la première valeur de ton tableau recopiée.

En fait, cette façon de recopier une plage de cellule est bien différente d'un ActiveSheet.Paste

Un plus : Il est préférable d'utiliser cette ligne de code :

i = Sheets('Priorités').Range('A65000').End(xlUp).Row

à la place de :

i = Sheets('Priorités').Range('A8').End(xlDown).Offset(1, 0).Row


@ +++

Ma

Message édité par: Moa, à: 06/06/2005 16:03
 
Bonsoir Phil, Moa, bonsoir le forum,

Moa j'ai testé ton code et ça ne fonctionne pas, alors je me permets de proposer cela :


Sub NewGestion()
Dim tblvar(4) As String 'déclare la variable tblvar (tableau de 5 item de 0 à 4)
Public lf As Integer 'déclare la variable lf
Dim x As Byte 'déclare la variable x
Windows('Wordversexcel.XLS').Activate
Sheets('Données').Select
For x = 0 To 4 'boucle sur 5 items
tblvar(x) = Cells(1, x + 1) 'remplit le tableau des valeurs des cellules A1 à E1
Next x 'prochain item de la boucle
Workbooks.Open Filename:='I:tempNewGestion.xls'
Sheets('Priorités').Select
lf = Range('A8').End(xlDown).Offset(1, 0).Row 'définit la variable lf
For x = 0 To 4 'boucle sur 5 cellules
Cells(lf + x, 1) = tblvar(x) 'remplit la plage A_lf:A_lf+4 par les valeurs du tableau
Next x 'prochaine cellule
End Sub
 
Salut RObert !

Si si il fonctionne..Héhé..seulement, il n'est pas complet, j'ai simplement mis le point sur la partie qui lui manquait.

Il doit l'adapter à ses besoins !

Quand je l'ai écrit, je l'ai fait directement dans le message, puis je l'ai testé et il fonctionne, du moins chez moi.

En fait, je me suis inspiré d'un exemple que je m'étais fait très récemment.

@ +++

Moa
 
Bonjour le Fil,

Oui Moa, mille excuses, tu as tout a fait raison, ça fonctionne parfaitement. Hier quand je l'ai testé j'ai eu un message d'erreur et comme tu avais écris à tester j'ai pensé que l'erreur venait de chez toi alors que c'était moi qui avait dû mal retranscrire dans mon exemple.
Je te prie de bien vouloir m'excuser.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour