Microsoft 365 Debut d'une macro en fonction d'une cellule varible

Remi_54500

XLDnaute Nouveau
Bonjour,

Je suis pas très à l'aise avec VBA, du coup j'aurais besoin de votre aide malgré mes recherches.

Dans un fichier j'ai le code suivant :

Sub test()

Range("B28").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""","""",VLOOKUP(RC[-1],[Wiring_diagram_codebook.xlsm]Nomenclature!C1:C7,3,FALSE))"
derniere_ligne = Range("a28").End(xlDown).Row
' ou derniere_ligne = ActiveSheet.UsedRange.Rows.Count
Range("B28:E28").AutoFill Destination:=Range("B28:E" & derniere_ligne), Type:=xlFillDefault

End Sub


Cela me permet de copier dans de la cellule B28, les valeurs d'une recherche verticale dans un autre fichier en fonction du contenu de la cellule A28. Cela continue jusqu'à arriver sur une cellule vide de la colonne A.

Mon problème est que ce fichier est spécifique pour un type de produit et que pour un autre produit la macro pourrait commencer qu'à partir de la cellule B50 ou B10, enfin ca serait une valeur variable.

Comment puis je intégrer cela dans le code VBA ?
Si cela peut aider à ce que ce soit plus simple, je peux par exemple mettre dans une cellule (à coté du bouton macro) l'information disant que la macro doit commencer à partir de telle valeur de cellue. Du genre en cellule J2 j'indique B50 pour dire à la macro que c'est en B50 qu'elle doit commencer.

J'espère que c'est assez clair pour vous et merci d'avance pour votre aide.
 

jui42

XLDnaute Junior
Je finis dans très peu de temps mais pour pas que vous ne soyez bloqué, voici un code permettant de rechercher toutes les cellules correspondantes à une valeur.
VB:
              Dim FirstFound As String        ' definition des variable que l'on va utiliser
        Dim FoundCell As Range, rng As Range
        Dim myRange As Range, LastCell As Range
        Dim cb1 as Variant
        
        'Valeur a chercher cb1, 
        cb1 = InputBox("Valeur à chercher")
        Set myRange = ActiveSheet.Range("votre plage de recherche") 'Ici vous supprimez le ActiveSheet et vous renseignez le classeur ou la feuille sur laql est effectuée la recherche
        Set LastCell = myRange.Cells(myRange.Cells.Count)
        Set FoundCell = myRange.Find(what:=cb1, After:=LastCell, LookAt:=xlPart)
        
        'Test pour voir si qlq chose est trouver
        If Not FoundCell Is Nothing Then
            FirstFound = FoundCell.Address
            
        Else
            
            GoTo NothingFound    'Vous devez définir votre nothingFounD en bas de code après avoir mis ExitSub  vous pouvez mettre NothingFound : MsgBox("rien n'a été trouvé")
        End If
        
        Set rng = FoundCell
        ' TEST POUR EMPECHER L'ERREUR SUR LA VALEUR TROUVEE
        
        'Tour jusqu'a que ça trouve tout
        Do Until FoundCell Is Nothing
            'Trouve la nouvelle cellule avec la valeur
            Set FoundCell = myRange.FindNext(After:=FoundCell)
            
            'Ajoute la valeur a la variable tableau
            Set rng = Union(rng, FoundCell)
            
            
            If FoundCell.Address = FirstFound Then Exit Do
            
        Loop
        
        'selection du tableau
        rng.Select       ' rng représente toute les cellules ayant une correspondances
Nous regarderons ensemble demain si cela ne vous avance pas.
Cdt
 

Remi_54500

XLDnaute Nouveau
Jui42,

Oula je n'ai pas compris grand chose à tout ce code :/

En fait je cherche à faire un fichier "master".

Ensuite il existerait 4, 5, voire 10 fichiers du même principe. Sauf que sur le 1er fichier ma macro devrait commencer à partir de la cellule B28, sur le 2eme fichier la macro devrait commencer à partir de la cellule B50 et sur le 8ème fichier à partir de la cellule B10 par exemple.

Du coup j'aimerai mettre la valeur de la cellule où la macro doit commencer dans une cellule J2 (par exemple) et que dans le code VBA, là où j'ai mis B28 et A28, ca lise la valeur qui est en J2.
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@Remi_54500

Merci de ton retour

1660288774664.png


Pas de retour ?

Et pourtant même si cela s'adressait à un autre post

Je regarde et je te redis si cela convient ou pas.

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 923
Membres
103 041
dernier inscrit
Ousmane