J'ai un problème avec la macro suivante qui doit me lister les cellules et
leurs reférences en fonction de la formule renseignée. Les données trouvées,
archivées dans une variable tableau appelée MonTableau, sont bien là, mais
la commande suivante ne me les affiche pas dans ma feuille résultat (qui
reste vierge) :
Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide
Steph. D.
'*************************************
Option explicit
Sub AfficherMesFormulesDeBase()
' Steph D.
' 20040428
Dim MaFeuille As Worksheet
Dim MaFeuilleResultat As Worksheet
Dim i As Integer
Dim MonTableau
Dim MaCellule As Range
Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add
i = 1
ReDim MonTableau(2500)
For Each MaFeuille In ActiveWorkbook.Sheets
For Each MaCellule In MaFeuille.Range("A1:AA200")
If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula,
"conso", 0) = 0 _
And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1,
MaCellule.Formula, "nbcar", 0) = 0 Then
'si la cellule est de type formule et ne contient pas un des
arguments
' stockage des références de la cellule
MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " &
MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal
i = i + 1
End If
Next MaCellule
Next MaFeuille
ReDim Preserve MonTableau(i)
MaFeuilleResultat.Activate
Range("A1:A" & i).Value = MonTableau
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Fauconnier
Bonjour
Je ne connais pas de technique pour le faire sans boucle.
for i = 0 to ubound(MonTableau)-1 range("a" & i)=montableau(i) next i
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Steph_D" a écrit dans le message de news: d4qufo$hkh$
Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et leurs reférences en fonction de la formule renseignée. Les données trouvées, archivées dans une variable tableau appelée MonTableau, sont bien là, mais la commande suivante ne me les affiche pas dans ma feuille résultat (qui reste vierge) : Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide Steph. D.
'************************************* Option explicit Sub AfficherMesFormulesDeBase() ' Steph D. ' 20040428 Dim MaFeuille As Worksheet Dim MaFeuilleResultat As Worksheet Dim i As Integer Dim MonTableau Dim MaCellule As Range Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add i = 1 ReDim MonTableau(2500) For Each MaFeuille In ActiveWorkbook.Sheets For Each MaCellule In MaFeuille.Range("A1:AA200") If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula, "conso", 0) = 0 _ And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1, MaCellule.Formula, "nbcar", 0) = 0 Then 'si la cellule est de type formule et ne contient pas un des arguments ' stockage des références de la cellule MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " & MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal i = i + 1 End If Next MaCellule Next MaFeuille ReDim Preserve MonTableau(i) MaFeuilleResultat.Activate Range("A1:A" & i).Value = MonTableau End Sub
Bonjour
Je ne connais pas de technique pour le faire sans boucle.
for i = 0 to ubound(MonTableau)-1
range("a" & i)=montableau(i)
next i
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Steph_D" <steph_D@caramail.com> a écrit dans le message de news:
d4qufo$hkh$1@s1.news.oleane.net...
Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et
leurs reférences en fonction de la formule renseignée. Les données
trouvées,
archivées dans une variable tableau appelée MonTableau, sont bien là, mais
la commande suivante ne me les affiche pas dans ma feuille résultat (qui
reste vierge) :
Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide
Steph. D.
'*************************************
Option explicit
Sub AfficherMesFormulesDeBase()
' Steph D.
' 20040428
Dim MaFeuille As Worksheet
Dim MaFeuilleResultat As Worksheet
Dim i As Integer
Dim MonTableau
Dim MaCellule As Range
Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add
i = 1
ReDim MonTableau(2500)
For Each MaFeuille In ActiveWorkbook.Sheets
For Each MaCellule In MaFeuille.Range("A1:AA200")
If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula,
"conso", 0) = 0 _
And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1,
MaCellule.Formula, "nbcar", 0) = 0 Then
'si la cellule est de type formule et ne contient pas un
des
arguments
' stockage des références de la cellule
MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " &
MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal
i = i + 1
End If
Next MaCellule
Next MaFeuille
ReDim Preserve MonTableau(i)
MaFeuilleResultat.Activate
Range("A1:A" & i).Value = MonTableau
End Sub
Je ne connais pas de technique pour le faire sans boucle.
for i = 0 to ubound(MonTableau)-1 range("a" & i)=montableau(i) next i
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Steph_D" a écrit dans le message de news: d4qufo$hkh$
Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et leurs reférences en fonction de la formule renseignée. Les données trouvées, archivées dans une variable tableau appelée MonTableau, sont bien là, mais la commande suivante ne me les affiche pas dans ma feuille résultat (qui reste vierge) : Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide Steph. D.
'************************************* Option explicit Sub AfficherMesFormulesDeBase() ' Steph D. ' 20040428 Dim MaFeuille As Worksheet Dim MaFeuilleResultat As Worksheet Dim i As Integer Dim MonTableau Dim MaCellule As Range Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add i = 1 ReDim MonTableau(2500) For Each MaFeuille In ActiveWorkbook.Sheets For Each MaCellule In MaFeuille.Range("A1:AA200") If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula, "conso", 0) = 0 _ And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1, MaCellule.Formula, "nbcar", 0) = 0 Then 'si la cellule est de type formule et ne contient pas un des arguments ' stockage des références de la cellule MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " & MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal i = i + 1 End If Next MaCellule Next MaFeuille ReDim Preserve MonTableau(i) MaFeuilleResultat.Activate Range("A1:A" & i).Value = MonTableau End Sub
MichDenis
Bonjour Steph,
IL est possible de faire ce que tu demandes, mais tu dois modifier un peu ta procédure. Voici un exemple comment tu devrait traiter ta variable tableau
Lorsque tu utilises ceci : ReDim Preserve Tableau(1 To 1, B To A) Ta variable Tableau doit être de deux dimensions et comme tu veux faire une copie de ton tableau directement dans une plage de cellules de la feuille de calcul, ton tableau doit être de base 1 . Important : Avec Redim Preserve , seule la dernière dimensions est redimensionnable. Il ne te reste plus qu'à adapter le concept de cet exemple à ta procédure pour la gestion du tableau !
Pourquoi un tableau à 2 dimension : Rapelle-toi, une cellule est localisée dans une feuille de calcul par 2 dimensions : cells(ligne,Colonne)
'-------------------------------------- Sub Test() Dim Tableau() Dim A As Integer Dim B As Long
For A = 1 To 5 ReDim Preserve Tableau(1 To 1, B To A) Tableau(1, B) = A Next
' J'ai utilise A-1 parce qu'à la sortie de la boucle ' la variable A = 6, pas 5 ! Range("A1:A" & A - 1) = Tableau End Sub '------------------------------------------
Salutations!
"Steph_D" a écrit dans le message de news: d4qufo$hkh$ Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et leurs reférences en fonction de la formule renseignée. Les données trouvées, archivées dans une variable tableau appelée MonTableau, sont bien là, mais la commande suivante ne me les affiche pas dans ma feuille résultat (qui reste vierge) : Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide Steph. D.
'************************************* Option explicit Sub AfficherMesFormulesDeBase() ' Steph D. ' 20040428 Dim MaFeuille As Worksheet Dim MaFeuilleResultat As Worksheet Dim i As Integer Dim MonTableau Dim MaCellule As Range Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add i = 1 ReDim MonTableau(2500) For Each MaFeuille In ActiveWorkbook.Sheets For Each MaCellule In MaFeuille.Range("A1:AA200") If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula, "conso", 0) = 0 _ And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1, MaCellule.Formula, "nbcar", 0) = 0 Then 'si la cellule est de type formule et ne contient pas un des arguments ' stockage des références de la cellule MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " & MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal i = i + 1 End If Next MaCellule Next MaFeuille ReDim Preserve MonTableau(i) MaFeuilleResultat.Activate Range("A1:A" & i).Value = MonTableau End Sub
Bonjour Steph,
IL est possible de faire ce que tu demandes, mais tu dois modifier un peu ta procédure. Voici un exemple comment tu devrait traiter
ta variable tableau
Lorsque tu utilises ceci :
ReDim Preserve Tableau(1 To 1, B To A)
Ta variable Tableau doit être de deux dimensions et comme tu veux faire une copie de ton tableau directement dans une plage de
cellules de la feuille de calcul, ton tableau doit être de base 1 . Important : Avec Redim Preserve , seule la dernière dimensions
est redimensionnable. Il ne te reste plus qu'à adapter le concept de cet exemple à ta procédure pour la gestion du tableau !
Pourquoi un tableau à 2 dimension : Rapelle-toi, une cellule est localisée dans une feuille de calcul
par 2 dimensions : cells(ligne,Colonne)
'--------------------------------------
Sub Test()
Dim Tableau()
Dim A As Integer
Dim B As Long
For A = 1 To 5
ReDim Preserve Tableau(1 To 1, B To A)
Tableau(1, B) = A
Next
' J'ai utilise A-1 parce qu'à la sortie de la boucle
' la variable A = 6, pas 5 !
Range("A1:A" & A - 1) = Tableau
End Sub
'------------------------------------------
Salutations!
"Steph_D" <steph_D@caramail.com> a écrit dans le message de news: d4qufo$hkh$1@s1.news.oleane.net...
Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et
leurs reférences en fonction de la formule renseignée. Les données trouvées,
archivées dans une variable tableau appelée MonTableau, sont bien là, mais
la commande suivante ne me les affiche pas dans ma feuille résultat (qui
reste vierge) :
Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide
Steph. D.
'*************************************
Option explicit
Sub AfficherMesFormulesDeBase()
' Steph D.
' 20040428
Dim MaFeuille As Worksheet
Dim MaFeuilleResultat As Worksheet
Dim i As Integer
Dim MonTableau
Dim MaCellule As Range
Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add
i = 1
ReDim MonTableau(2500)
For Each MaFeuille In ActiveWorkbook.Sheets
For Each MaCellule In MaFeuille.Range("A1:AA200")
If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula,
"conso", 0) = 0 _
And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1,
MaCellule.Formula, "nbcar", 0) = 0 Then
'si la cellule est de type formule et ne contient pas un des
arguments
' stockage des références de la cellule
MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " &
MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal
i = i + 1
End If
Next MaCellule
Next MaFeuille
ReDim Preserve MonTableau(i)
MaFeuilleResultat.Activate
Range("A1:A" & i).Value = MonTableau
End Sub
IL est possible de faire ce que tu demandes, mais tu dois modifier un peu ta procédure. Voici un exemple comment tu devrait traiter ta variable tableau
Lorsque tu utilises ceci : ReDim Preserve Tableau(1 To 1, B To A) Ta variable Tableau doit être de deux dimensions et comme tu veux faire une copie de ton tableau directement dans une plage de cellules de la feuille de calcul, ton tableau doit être de base 1 . Important : Avec Redim Preserve , seule la dernière dimensions est redimensionnable. Il ne te reste plus qu'à adapter le concept de cet exemple à ta procédure pour la gestion du tableau !
Pourquoi un tableau à 2 dimension : Rapelle-toi, une cellule est localisée dans une feuille de calcul par 2 dimensions : cells(ligne,Colonne)
'-------------------------------------- Sub Test() Dim Tableau() Dim A As Integer Dim B As Long
For A = 1 To 5 ReDim Preserve Tableau(1 To 1, B To A) Tableau(1, B) = A Next
' J'ai utilise A-1 parce qu'à la sortie de la boucle ' la variable A = 6, pas 5 ! Range("A1:A" & A - 1) = Tableau End Sub '------------------------------------------
Salutations!
"Steph_D" a écrit dans le message de news: d4qufo$hkh$ Bonjour tout le monde,
J'ai un problème avec la macro suivante qui doit me lister les cellules et leurs reférences en fonction de la formule renseignée. Les données trouvées, archivées dans une variable tableau appelée MonTableau, sont bien là, mais la commande suivante ne me les affiche pas dans ma feuille résultat (qui reste vierge) : Range("A1:A" & i).Value = MonTableau
Où ai-je commis l'erreur ? Merci pour votre aide Steph. D.
'************************************* Option explicit Sub AfficherMesFormulesDeBase() ' Steph D. ' 20040428 Dim MaFeuille As Worksheet Dim MaFeuilleResultat As Worksheet Dim i As Integer Dim MonTableau Dim MaCellule As Range Set MaFeuilleResultat = ActiveWorkbook.Worksheets.Add i = 1 ReDim MonTableau(2500) For Each MaFeuille In ActiveWorkbook.Sheets For Each MaCellule In MaFeuille.Range("A1:AA200") If MaCellule.HasFormula = True And InStr(1, MaCellule.Formula, "conso", 0) = 0 _ And InStr(1, MaCellule.Formula, "alfa", 0) = 0 And InStr(1, MaCellule.Formula, "nbcar", 0) = 0 Then 'si la cellule est de type formule et ne contient pas un des arguments ' stockage des références de la cellule MonTableau(i) = "'Feuille " & MaFeuille.Name & "Ref " & MaCellule.AddressLocal & "Formule " & MaCellule.FormulaLocal i = i + 1 End If Next MaCellule Next MaFeuille ReDim Preserve MonTableau(i) MaFeuilleResultat.Activate Range("A1:A" & i).Value = MonTableau End Sub