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 ?
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 ?
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: f01601c43d83$badde190$a101280a@phx.gbl...
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 ?
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 ?
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 ?
.
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 _
:=False, Transpose:=False
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: f01601c43d83$badde190$a101280a@phx.gbl...
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 ?
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 ?
.
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 ?
.
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: f29601c43d9c$a52d2bd0$a501280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: f01601c43d83$badde190$a101280a@phx.gbl...
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 ?
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 ?
.
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
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 ?