OVH Cloud OVH Cloud

cherche site sur Arrays

4 réponses
Avatar
gaston
Bonjour !
je cherche un site traitant en d=E9tail des Arrays avec vba.=20
J'en trouve mais aucun n'est vraiment complet. J'aimerai=20
un site o=F9 on puisse apprendre et que cela soit=20
compr=E9hensible ;-)
Vous devez bien en conna=EEtre ?

4 réponses

Avatar
Pascal Engelmajer
Salut,
c'est quoi un Array en VBA ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"gaston" a écrit dans le message de
news: f01601c43d83$badde190$
Bonjour !
je cherche un site traitant en détail des Arrays avec vba.
J'en trouve mais aucun n'est vraiment complet. J'aimerai
un site où on puisse apprendre et que cela soit
compréhensible ;-)
Vous devez bien en connaître ?
Avatar
gaston
c'est un tableau...personnellement, jusqu'à présent je les
utilise uniquement pour ne pas avoir besoin de créer une
feuille (ou une colonne ou une ligne) supplémentaire pour
faire des calculs intermédiaires. Par exemple, pour
changer tous les signes des valeurs de la colonne A:

Sub ChangementSigneC()
Dim C As Variant
' recherche de la dernière ligne de la liste
C = Range("D:D").Find("*", [D1], , , xlByRows,
xlPrevious).Row
Dim ArrayDataC As Variant
Dim ArrayResultatC As Variant
'renseigne ArrayDataC (tableau à 2 dimensions)
ArrayDataC = Range("A2:A" & C)
'dimensionne ArrayResultatC (tableau à 1 dimension)
ReDim ArrayResultatC(1 To UBound(ArrayDataC, 1))
'renseigne ArrayResultatC
For i = 1 To UBound(ArrayDataC, 1)
ArrayResultatC(i) = ArrayDataC(i, 1) * (-1)
Next i
'renvoie le résultat dans la même plage
Range("A2:A" & 2 + UBound(ArrayResultatC) - 1).Value =
Application.Transpose(ArrayResultatC)
End Sub

ça va d'autre part, beaucoup plus vite, que de calculer
sur une autre colonne dans la même feuille ou non, puis
faire un copié collé des valeurs dans la colonne
d'origine, c.a.d. comme ça:

Private Sub ChangementSigne()
Dim soldesigne As Long
soldesigne = Range("A:A").Find("*", [A1], , , xlByRows,
xlPrevious).Row
' changement du signe de A2 dans la cellule C2 (la colonne
est vide)
Range("C2").Select
ActiveCell.FormulaR1C1 = "=-RC[-2]"
' copié collé de la formule dans le reste de la colonne C
Range("C2").Select
Selection.copy
Range("C3:C" & soldesigne).Select
ActiveSheet.Paste
Range("C2:C" & soldesigne).Select
Selection.copy
' copié collé des valeurs de la colonne C vers la colonne
A
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Columns("C:C").Select
Selection.ClearContents
End Sub

Voili voilà
Et donc je trouve nulle part comment faire pour des sous-
totaux multiples et de différents types, le tout sur la
même ligne, grâce à ce même système, alors je cherchais un
site pour commencer par le début et apprendre bien comme
il faut, pour maîtriser le sujet...
-----Message d'origine-----
Salut,
c'est quoi un Array en VBA ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
"gaston" a écrit
dans le message de

news: f01601c43d83$badde190$
Bonjour !
je cherche un site traitant en détail des Arrays avec vba.
J'en trouve mais aucun n'est vraiment complet. J'aimerai
un site où on puisse apprendre et que cela soit
compréhensible ;-)
Vous devez bien en connaître ?


.



Avatar
Pascal Engelmajer
Salut,
on peut faire plus simple et surtout plus rapide... pour le fun
Sub ChangementSigneC()
Application.ScreenUpdating = False
Range("B1") = -1
Range("B1").Copy 'cellule intermédiaire doit être libre
Range(Range("A2"), Range("A65536").End(xlUp)).PasteSpecial -4104, 4
Application.ScreenUpdating = True
End Sub

va voir pour les Variant (qui peuvent contenir un Array)
LL : http://longre.free.fr/pages/prog/accvba.htm#Tableaux
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"gaston" a écrit dans le message de
news: f29601c43d9c$a52d2bd0$
c'est un tableau...personnellement, jusqu'à présent je les
utilise uniquement pour ne pas avoir besoin de créer une
feuille (ou une colonne ou une ligne) supplémentaire pour
faire des calculs intermédiaires. Par exemple, pour
changer tous les signes des valeurs de la colonne A:

Sub ChangementSigneC()
Dim C As Variant
' recherche de la dernière ligne de la liste
C = Range("D:D").Find("*", [D1], , , xlByRows,
xlPrevious).Row
Dim ArrayDataC As Variant
Dim ArrayResultatC As Variant
'renseigne ArrayDataC (tableau à 2 dimensions)
ArrayDataC = Range("A2:A" & C)
'dimensionne ArrayResultatC (tableau à 1 dimension)
ReDim ArrayResultatC(1 To UBound(ArrayDataC, 1))
'renseigne ArrayResultatC
For i = 1 To UBound(ArrayDataC, 1)
ArrayResultatC(i) = ArrayDataC(i, 1) * (-1)
Next i
'renvoie le résultat dans la même plage
Range("A2:A" & 2 + UBound(ArrayResultatC) - 1).Value Application.Transpose(ArrayResultatC)
End Sub

ça va d'autre part, beaucoup plus vite, que de calculer
sur une autre colonne dans la même feuille ou non, puis
faire un copié collé des valeurs dans la colonne
d'origine, c.a.d. comme ça:

Private Sub ChangementSigne()
Dim soldesigne As Long
soldesigne = Range("A:A").Find("*", [A1], , , xlByRows,
xlPrevious).Row
' changement du signe de A2 dans la cellule C2 (la colonne
est vide)
Range("C2").Select
ActiveCell.FormulaR1C1 = "=-RC[-2]"
' copié collé de la formule dans le reste de la colonne C
Range("C2").Select
Selection.copy
Range("C3:C" & soldesigne).Select
ActiveSheet.Paste
Range("C2:C" & soldesigne).Select
Selection.copy
' copié collé des valeurs de la colonne C vers la colonne
A
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Columns("C:C").Select
Selection.ClearContents
End Sub

Voili voilà
Et donc je trouve nulle part comment faire pour des sous-
totaux multiples et de différents types, le tout sur la
même ligne, grâce à ce même système, alors je cherchais un
site pour commencer par le début et apprendre bien comme
il faut, pour maîtriser le sujet...
-----Message d'origine-----
Salut,
c'est quoi un Array en VBA ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
"gaston" a écrit
dans le message de

news: f01601c43d83$badde190$
Bonjour !
je cherche un site traitant en détail des Arrays avec vba.
J'en trouve mais aucun n'est vraiment complet. J'aimerai
un site où on puisse apprendre et que cela soit
compréhensible ;-)
Vous devez bien en connaître ?


.



Avatar
AV
Par exemple, pour
changer tous les signes des valeurs de la colonne A:
..........................

ça va d'autre part, beaucoup plus vite, que de calculer
sur une autre colonne dans la même feuille ou non,


Tu crois que ça irait pas encore plus vite comme ça ?

[A1:A10] = [A1:A10*-1]

AV