Copier-Coller

Signaler
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
Slt ! Voila un code qui fonctionne mais ne donne pas le résultat voulu



Sub egjio()
Dim Table() As Double
ReDim Table(2, 1)



Dim ae As Integer
Dim aebis As Integer
Dim op As Integer
Dim opbis As Integer





For ae = 1 To 3
    For aebis = 1 To 2
        Table(op, opbis) = Cells(ae, aebis)
    Next aebis
Next ae





Dim poiu As Integer
Dim poiuBis As Integer



For poiu = 0 To UBound(Table, 1)
    For poiuBis = 0 To UBound(Table, 2)
        Cells(5, 13).Offset(poiu, poiuBis).Value = Table(poiu, poiuBis)
    Next poiuBis
Next poiu
End Sub

En faite toutes les cellules (où  est afficher le résultat) sont à 0 sauf la 1° qui affiche la deniére cellule du copier.


la macro marche po :(


Merci des aides!^^


+

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
40
Commençons par le commencement !!!

Regarde ta première double boucle. Vérifie à chaque tour, chaque fois que tu incrémente aebis, ce que vaut op et opbis, vérifie dans quelle case du tableau tu stocke la valeur que tu as, par la suite, l'intention de coller

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

Donc Casy joue à la devinette pédagogique... op sss... j'ai rien dit...

Amicalement,
Us.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
umm umm ummmm ...

Dim op As Integer
Dim opbis As Integer
For ae = 1 To 3
    For aebis = 1 To 2
        Table(op, opbis) = Cells(ae, aebis)
    Next aebis
Next ae

autant faire directement
Table(0, 0) = Cells(3, 2)

c'est plus clair en couleur non?

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bien vu PCPT
Faut dire que les noms de variables sont clairs ! On s'y perd rapidement, je trouve

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009

Hmmmmm
ReDim Table(2, 1)                      'ReDim Table(NbreDeLigne, NbreDeColonne)
For ae = 1 To 3
    For aebis = 1 To 2
        Table(op, opbis) = Cells(ae, aebis)
op=op+1
opbis=opbis+1
    Next aebis
Next ae

mais bon le programme bugg du fait que op devient >2 et opbis devient >1 ....
Messages postés
146
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
17 novembre 2009
1
Et si tu essayais tout simplement

ReDim Table(2, 1)                      'ReDim Table(NbreDeLigne, NbreDeColonne)
For ae = 1 To 3
    For aebis = 1 To 2
        Table(ae-1, aebis-1) = Cells(ae, aebis)


    Next aebis
Next ae




@+
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009

Hmm non, sa ne marche pas : incompatibilité de type,
Table(ae-1, aebis-1) = Cells(ae, aebis)
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009

Hmmmmmmmmmmmm,
(Allez jrelance !^^)
na ça n'inspire personne,

:(

A toute!!; )
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
incompatibilité type, le message est clair
ton tableau attend un double et tu lui attribues sans doute une chaine....

on ne peut pas savoir ce que contiennent tes cellules....
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

Oui... et pour éviter de trop coder et aller à la vitesse de l'éclair, tu peux étudier ce code ci-après :

Sub egjio()




'Met les cellules A1 à C3 dans le tableau

Dim Table()
Table = Range(Cells(1, 1), Cells(3, 3))






'Met le tableau Table dans les cellules A1 à C3
'Table(1, 3) = "e"

Range(Cells(1, 1), Cells(3, 3)) = Table




End Sub




Amicalement,
Us.