XL 2010 [Résolu] Modifier la boucle par un tableau

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

Lone-wolf

XLDnaute Barbatruc
Bonjour à toutes et à tous 🙂

J'aimerais modifier cette boucle par un tableau Scripting.Dictonary, mais je ne sais pas m'y prendre. Merci d'avance pour votre aide

VB:
x = 0
With ShB
For i = 7 To derlig
x = x + 1
.Range("a" & i) = Left(.Range("b" & i), 2) & Left(.Range("c" & i), 2) & "-000" & x
Next i
End With
 
salut loup tout seul🙂😛

avec ton exemple passer par un tablo je peus le comprendre🙂 mais le dico dans ce cas pourquoi ???

mais un fichier exemple pour faire plus " clair"

regarderai cet aprés midi si pas de reponse moi partir

ps: x peut être i dans ton exemple😉
 
Bonjour Lone-wolf
Bonjour le Fil , le Forum
pas évident de travailler sur ton fichier car il y a des Liaisons etc et l'on obtient pas les données sous leur bonne forme .
pourrais tu mettre un exemple du format de tes Données en Colonnes B et C .
c'est bien en feuille "JOURNAL STOCKS" ? car ActiveSheet dans la procédure .
Merci par avance
Bonne Journée
Jean marie
 
Bonjour
Comme ceci par exemple
Sub test()
Dim Derlig As Long
Application.ScreenUpdating = False
Derlig = [b100000].End(xlUp).Row
Range(Cells(7, "A"), Cells(Derlig, "A")).FormulaR1C1 = "=LEFT(RC[1],2)&LEFT(RC[2],2)&""-000"" &ROW()"
Range(Cells(7, "A"), Cells(Derlig, "A")).Value = Range(Cells(7, "A"), Cells(Derlig, "A")).Value
End Sub

Cdlt
 
Bon_jour

Résolu que tu dis mais fais-tu la distinction entre les 2 types de numérotation ?

Numérotation intégrale : avec un tableau (table) qui adapte les formats, formules … en cas d'ajout, de suppression de lignes.
VB:
Sub test()
  [TBo[code]].FormulaR1C1 = "=LEFT(RC[1],2)&LEFT(RC[2],2)&""-000"" &ROW()" & -[Tbo].Row + 1
End Sub
Nota : normalement la macro n'est utile que si la colonne code est remplie partiellement.

Numérotation par thème : je garde le tableau bien que la macro doit-être relancée à chaque ajout, suppression de lignes mais, ici, j'utilise le dico *.

VB:
Private Sub CommandButton2_Click()
  Application.ScreenUpdating = 0
  [Tbo[code]] = ""
  Set N° = CreateObject("Scripting.dictionary")
  For Each C In [Tbo[Quoi]]: N°(C.Value) = "": Next
  a = N°.keys
  For n = 0 To N°.Count - 1
  [Tbo].AutoFilter 2, a(n)
  x = 0
  For Each R In [Tbo[Quoi]].SpecialCells(12)
  x = x + 1
  R(1, 0) = Left(R, 2) & Left(R(1, 2), 2) & "-000" & x
  Next
  [Tbo].AutoFilter
  Next
End Sub

* d'aucun(e) 😉 pourrait le coupler avec un Array (tableau VBA)
 

Pièces jointes

Bonsoir le fil, le forum

Juste pour le plaisir de croiser Si...
(et pour l'avoir plus courte 😉)
VB:
Sub teste()
[TBo[code]].Formula = "=left(B2,2)&left(C2,2)&""-000""&row()" & -[Tbo].Row + 1
End Sub

NB1: Je croise évidemment le loup, mon jumeau de prénom et leti avec plaisir, mais je vous ai pas inclus dans la présente taquinerie 😉

NB2: Je croise aussi Rouge (ni avec plaisir ni avec déplaisir) au motif que je ne le "connais" point. 😉
 
Bonsoir à tous 🙂

Malgré que le sujet soit clôt, j'ai pris exemple sur la formule comme ceci

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tbl As Range

Application.EnableEvents = False

Set tbl = Range("a7:a" & Range("a" & Rows.Count).End(xlUp).Row)
tbl.FormulaLocal = "=SI(C7<>"""";GAUCHE(B7;2)&GAUCHE(C7;2)&""-000"" &LIGNE()-6;"""")"
tbl.Value = tbl.Value

Application.EnableEvents = True
End Sub
 
- 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
703
Réponses
10
Affichages
531
Réponses
4
Affichages
580
Réponses
8
Affichages
647
Retour