Microsoft 365 Fleurissement.

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

blancolie

XLDnaute Impliqué
Bonjour le forum,

A travers ce fichier j'aimerais retranscrire ce que je rentre dans l'onglet Zone de saisie dans les autres onglets fanfelle, chombart , ververt ou plandanjou. Bien sur, les plantes fournis par fanfelle iront ds l onglet fanfelle etc etc.

Par Formule je sais faire mais le soucis si je modifie un élément ds l onglet Zone de saisie, cela modifie les éléments ds les autres onglets également.

Ce que je cherche mais par formule, je pense pas que cela soit réalisable mais par macro si je pense mais je ne connais rien a cela.

Donc voila j'aimerais que quand j 'ai tout rentrer ds zone de saisie cela puisse rester permanent dans les autres onglets et que je puisse effacer les données de l'onglet Zone de Saisie.

Est il possible dans l'onglet saisie de demander a excel de passer à ligne tout en recopiant les formules quand on valide notre saisie.

dans l'onglet zone de saisie, il y a juste le code de la plante à rentrer et toutes les infos de la plante apparaissent.

merci pour votre aide.
 

Pièces jointes

Dernière édition:
Bonsoir Job75,

ou se situe la partie recherche dans votre codage ? je suppose que c'est dans la feuille 1 (recherche et choix ) ou this workbok ( qui m'étonnerait). Dans la feuil1 (Recherche et choix ) c'est ce code :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B:E]) Is Nothing Then Exit Sub
Dim vide As Boolean, fournisseur$, critere$, tablo, resu(), i&, n&
vide = [B2] & [C2] = ""
fournisseur = [B2]
critere = LCase(fournisseur & Chr(1) & CStr([C2])) & "*" 'textes commençant par C2....
tablo = Sheets("BDD_Technique").[A2].CurrentRegion.Resize(, 6) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 7)
For i = 2 To UBound(tablo)
    If Not vide And LCase(IIf(fournisseur = "", "", tablo(i, 4)) & Chr(1) & tablo(i, 1)) Like critere Then
        n = n + 1
        resu(n, 1) = tablo(i, 4)
        resu(n, 2) = tablo(i, 1)
        resu(n, 3) = tablo(i, 2)
        resu(n, 4) = tablo(i, 5)
        resu(n, 5) = tablo(i, 6)
    End If
Next

C'est bien ce code ?
 
ce codage sert a quoi ?

VB:
Application.EnableEvents = False 'désactive les évènementsss
AutoFilterMode = False 'retire le filtre automatique
With [B5] '1ère cellule de restitutionnn
    If n Then
        .Resize(n, 7) = resu
        .Resize(n, 7).Borders.Weight = xlThin 'bordures
        .Cells(0).Resize(n + 1, 7).AutoFilter 'applique le filtre automatique
    End If
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 7).ClearContents 'RAZ en dessous
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 7).Borders.LineStyle = xlNone
End With
Columns(3).AutoFit 'ajustement largeur
ActiveWindow.ScrollRow = 1 'cadrage
With UsedRange: End With 'actualise la barre de défilement verticale
Application.EnableEvents = True 'réactive les évènementsss
 
et le 7 c'est le nombre de colonne de la feuil1 (recherche et choix) ou bdd technique, je pense que c'est bdd technique. cette partie concerne plus les bordures du tableau quand il y la cellule qui est remplit.
tablo (i ) i c'est quoi ? c'est aussi ligne et 4 c'est le nombre de colonne ?
 
Bonsoir,

je vois quand on tape les 2 premières lettres dans champ de recherche dans l'onglet recherche et qu'on tape une quantité et qu'on efface ensuite les 2 lettres ds champ recherche, nos quantités et massifs disparaissent dommage. c'est un inconvénient et peut on crée dans bdd technique une commande qui remet systematique la liste par ordre alphabétique quand on rentre un nouvelle ligne.

merci
 

Pièces jointes

bonsoir je cherche a comprendre ds ton code :

$ apres fournisseur et critère,cela veut dire quoi.
resu egalement

cette partie ci dessous permet de créer le tableau :

critere = LCase(fournisseur & Chr(1) & CStr([C2])) & "*" 'textes commenant par C2.....
tablo = Sheets("BDD_Technique").[A2].CurrentRegion.Resize(, 6) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 7)
For i = 2 To UBound(tablo)
If Not vide And LCase(IIf(fournisseur = "", "", tablo(i, 4)) & Chr(1) & tablo(i, 1)) Like critere Then
n = n + 1
resu(n, 1) = tablo(i, 4)
resu(n, 2) = tablo(i, 1)
resu(n, 3) = tablo(i, 2)
resu(n, 4) = tablo(i, 5)
resu(n, 5) = tablo(i, 6)
End If
Next
 
- 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
4
Affichages
135
Réponses
4
Affichages
111
Réponses
5
Affichages
144
Réponses
4
Affichages
116
Réponses
10
Affichages
349
Retour