XL 2013 VBA Prochain numéro

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 !

Danyk01

XLDnaute Occasionnel
Bonjour

J’aimerais afficher dans le dossier A, cellule (A3) le dernier numéro +1 d’une liste qui se trouve dans le dossier B, Feuil1,Liste : LNumero
ex : dossier A : C:\mes documents\MATRICE_TEST.xlsm\ cellule (A3)
dossier B : C:\mes documents\JOURNAL.xlsm\ colonne A, dernier numero+1
Avec un clic sur le bouton “Prochain Numéro”

Merci pour votre aide
 

Pièces jointes

Solution
Bonjour
Ta macro
VB:
Sub ProchainNum()
  Dim derlig As Long
  With Workbooks("JOURNAL .xlsm")
   derlig = .Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
   Range("A3").Value = .Sheets("Feuil1").Range("A" & derlig).Value + 1
  End With
End Sub
A+ François
Merci Laurent
Mais il me faut un code VBA, j'explique mon usine à gaz:
1- Je créé un devis à l'aide de ma matrice avec le dernier n°+1 issu du journal
2- je fais une archive (1 ligne dans le journal et une copie du devis dans le fichier du client)
Jusque là tout fonctionne

3- mais si j'ouvre ma matrice pour un nouveau devis, l'ancien numéro s'affiche
c'est là que je dois pouvoir cliquer sur le bouton pour sélectionner un nouveau n°

Je vais qd même essayer ta solution
A+
 
Bonjour
Ta macro
VB:
Sub ProchainNum()
  Dim derlig As Long
  With Workbooks("JOURNAL .xlsm")
   derlig = .Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
   Range("A3").Value = .Sheets("Feuil1").Range("A" & derlig).Value + 1
  End With
End Sub
A+ François
 
BONJOUR
j'arrive tard mais bon
il y avait aussi la solution du names caché

un bouton qui appelle la macro newdevis

VB:
Sub newdevis()
    Dim nom As Names
    For Each n In Application.Names
        If n.Name = "DevisNumber" Then x = True
    Next
    If Not x Then
        Application.Names.Add "DevisNumber", 1, False
    Else
        Names("DevisNumber").RefersTo = Val(Replace(Names("DevisNumber"), "=", "")) + 1
    End If
    Cells(2, 3).value= Replace(Names("DevisNumber"), "=", "")
End Sub
ça permet de se dispenser d'une feuille mémoire
bien Evidemment il faut faire un save de la même manière qu'avec une feuille mémoire

cela dit
le save de la "matrice"(pour employer le même terme) doit se faire après enregistrement du devis
car si on annule par exemple la saisie d'un devis on aura des numéros qui ne se suivent pas
 
BONJOUR
j'arrive tard mais bon
il y avait aussi la solution du names caché

un bouton qui appelle la macro newdevis

VB:
Sub newdevis()
    Dim nom As Names
    For Each n In Application.Names
        If n.Name = "DevisNumber" Then x = True
    Next
    If Not x Then
        Application.Names.Add "DevisNumber", 1, False
    Else
        Names("DevisNumber").RefersTo = Val(Replace(Names("DevisNumber"), "=", "")) + 1
    End If
    Cells(2, 3).value= Replace(Names("DevisNumber"), "=", "")
End Sub
ça permet de se dispenser d'une feuille mémoire
bien Evidemment il faut faire un save de la même manière qu'avec une feuille mémoire

cela dit
le save de la "matrice"(pour employer le même terme) doit se faire après enregistrement du devis
car si on annule par exemple la saisie d'un devis on aura des numéros qui ne se suivent pas
Merci Patrick
FanFan38 m'a envoyé un code qui fonctionne
Je vais qd même essayer le tien Histoire de me familiariser avec les macros
Dany
 
- 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
2
Affichages
477
Réponses
10
Affichages
635
Réponses
2
Affichages
669
Retour