Microsoft 365 Fleurissement.

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

  • Fleurissement.xlsx
    25 KB · Affichages: 95
Dernière édition:

blancolie

XLDnaute Impliqué
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 ?
 

blancolie

XLDnaute Impliqué
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
 

blancolie

XLDnaute Impliqué
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 ?
 

blancolie

XLDnaute Impliqué
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

  • Fichier demande de devis.xlsm
    74.4 KB · Affichages: 4

blancolie

XLDnaute Impliqué
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
 

Discussions similaires

Réponses
16
Affichages
582

Statistiques des forums

Discussions
314 656
Messages
2 111 609
Membres
111 220
dernier inscrit
Elé0n0re