Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 [RESOLU]Récupérer valeurs tableau d'une autre Sub

  • Initiateur de la discussion Initiateur de la discussion herve62
  • 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 !

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
D'une sub je fais appel à une autre ou je rempli un petit tableau Tab_j(x)
lors du retour dans la sub principale je veux relire ce tableau mais il est vide ??

les 2 sub sont dan un module , j'ai mis Public tab_J ()
VB:
Sub Find_replace()
Dim tab_J(3)
    ref = .Cells(5, 4)
    trouve_ref
   
    For y = 6 To 65
    If .Cells(x, y) = "X" Then
        For Z = 1 To 3
        If .Cells(3, y) = tab_J(Z) Then .Cells(x, y) = "ok"
        Next Z
     End If
    Next y
   
End Sub
----------------
Sub trouve_ref()
Dim tab_J(3)
For j = 1 To 3
tab_J(j) = .Cells(5, j + 30)
Next j
end sub
 
Re
Bon j'ai modifié comme dit au #2 ok
Les boucles J'ai beaucoup travaillé avec du BASIC, fortran, C donc je programme encore à l'ancienne
je suis autodidacte en vba, j'apprends avec ici
 
Bonjour herve62,

Désolé mais votre code m'est assez incompréhensible.

Alors en supposant que vous voulez copier le tableau en Feuil2 pour le coller sur le tableau en Feuil1 :
VB:
Sub Copier_coller()
Dim d As Object, tablo, ncol%, i&, j%, x$
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
'---mémorisation des valeurs du tableau source ---
tablo = Feuil2.[A2].CurrentRegion
If Not IsArray(tablo) Then MsgBox "Le tableau source n'existe pas...": Exit Sub
ncol = UBound(tablo, 2)
For i = 2 To UBound(tablo)
    For j = 2 To ncol
        d(tablo(i, 1) & Chr(1) & tablo(1, j)) = tablo(i, j)
Next j, i
'---tableau de destination---
With Feuil1.[A4].CurrentRegion
    tablo = .Value
    If Not IsArray(tablo) Then MsgBox "Le tableau de destination n'existe pas...": Exit Sub
    ncol = UBound(tablo, 2)
    For i = 2 To UBound(tablo)
        For j = 2 To ncol
            x = tablo(i, 1) & Chr(1) & tablo(1, j)
            If d.exists(x) Then tablo(i, j) = d(x)
    Next j, i
    .Value = tablo 'restitution
End With
End Sub
A+
 

Pièces jointes

Non pas du tout je fais des recherches dans un autre tableau selon plusieurs critères donc je dois boucler sur des données à chaque critère , maintenant ça marche
C'est le résultat qui compte
 
@job75
NON rien à voir ;;mon Problème était tout simplement de savoir pourquoi je ne récupérais pas mon tableau
le reste je MAITRISAIS !!! j'ai juste mis un exo bidon
Ma vraie appli est terminée et fonctionne
Affaire close
 
- 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

Discussions similaires

Réponses
5
Affichages
705
Réponses
4
Affichages
581
Réponses
8
Affichages
648
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
217
Réponses
2
Affichages
427
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
10
Affichages
533
Réponses
3
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…