Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser insertion + nom + definir

1 réponse
Avatar
Patrice
Bonjour,

Mon classeur excel comporte deux feuilles.
Une feuille donnée comportant environ 3000 lignes et une feuille
indicateur comportant un tableau de synthèse des données.
J' ai utilisé le menu insertion + nom + définir pour définir les
cellules du tableau. Ces noms sont, par exemple, sous ce format entr40nb
ou entr40mt.

Je construit ces noms dans une variable string dans mon module en
utilisant plusieurs cellules d'une ligne de la feuille donnée.

Maintenant je souhaiterais incrémenter entr40mt dans la feuille
indicateur ou ajouter le montant de la ligne à entr40mt.

J'ai concocter ceci, mais ça bug à ce niveau (certainement le changement
de format des variables au cours du code)

Sub Indic()

Dim datextrac As Date
Dim ligne As Integer
Dim site As Integer
Dim montant As Currency
Dim statut As String * 4
Dim codemaas As String * 5
Dim ensort As Integer
Dim codecellnb As String * 15


'Définition de la date d'extraction BO
Msg = "La date d'extration BO est-elle " & Date & " ?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbYes Then datextrac = Date
If Ans = vbNo Then
datextrac = InputBox("Saisissez la date d'extraction BO au format
JJ/MM/AAA")
End If

'définition de la ligne de début
ligne = 3

'moulinette
With Sheets("Export")
Do While .Range("A" & ligne) <> ""
'Traitement des données simple de la ligne
montant = .Cells(ligne, "M").Value
site = .Cells(ligne, "A").Value

'Traitement du code MAAS
If .Cells(ligne, "o").Value <> "" Then
If site = 44 Or site = 41 Then
codemass = "Reprises non codifiées"
Else
codemass = "MAAS8"
End If
Else
codemass = .Cells(ligne, "o").Value
End If

'Vérification si ligne entrée ou ligne sortie
If datextrac = .Cells(ligne, "T").Value Then
statut = "Sort"
entsort = 1
ElseIf datextrac = .Cells(ligne, "S").Value Then
statut = "entr"
entsort = 2
Else
statut = "enco"
entsort = 0
End If
'Fabrication des codes nom de cellule nombre des entrées et sortie
If entsort = 1 Or entsort = 2 Then
codecellnb = statut & site & "nb"
codecellnb = codecellnb + 1
codecellmt = statut & site & "mt"
codecellmt = codecellmt + montant
End If

'incrémentation
ligne = ligne + 1
Loop
End With


End Sub

Je sèche complètement.

Patrice.

1 réponse

Avatar
MichDenis
| Maintenant je souhaiterais incrémenter entr40mt dans la feuille
| indicateur ou ajouter le montant de la ligne à entr40mt.

ça c'est du chinois pour moi ! Qu'est-ce que tu veux faire exactement ?







"Patrice" a écrit dans le message de news: 454e3db2$0$11180$
Bonjour,

Mon classeur excel comporte deux feuilles.
Une feuille donnée comportant environ 3000 lignes et une feuille
indicateur comportant un tableau de synthèse des données.
J' ai utilisé le menu insertion + nom + définir pour définir les
cellules du tableau. Ces noms sont, par exemple, sous ce format entr40nb
ou entr40mt.

Je construit ces noms dans une variable string dans mon module en
utilisant plusieurs cellules d'une ligne de la feuille donnée.

Maintenant je souhaiterais incrémenter entr40mt dans la feuille
indicateur ou ajouter le montant de la ligne à entr40mt.

J'ai concocter ceci, mais ça bug à ce niveau (certainement le changement
de format des variables au cours du code)

Sub Indic()

Dim datextrac As Date
Dim ligne As Integer
Dim site As Integer
Dim montant As Currency
Dim statut As String * 4
Dim codemaas As String * 5
Dim ensort As Integer
Dim codecellnb As String * 15


'Définition de la date d'extraction BO
Msg = "La date d'extration BO est-elle " & Date & " ?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbYes Then datextrac = Date
If Ans = vbNo Then
datextrac = InputBox("Saisissez la date d'extraction BO au format
JJ/MM/AAA")
End If

'définition de la ligne de début
ligne = 3

'moulinette
With Sheets("Export")
Do While .Range("A" & ligne) <> ""
'Traitement des données simple de la ligne
montant = .Cells(ligne, "M").Value
site = .Cells(ligne, "A").Value

'Traitement du code MAAS
If .Cells(ligne, "o").Value <> "" Then
If site = 44 Or site = 41 Then
codemass = "Reprises non codifiées"
Else
codemass = "MAAS8"
End If
Else
codemass = .Cells(ligne, "o").Value
End If

'Vérification si ligne entrée ou ligne sortie
If datextrac = .Cells(ligne, "T").Value Then
statut = "Sort"
entsort = 1
ElseIf datextrac = .Cells(ligne, "S").Value Then
statut = "entr"
entsort = 2
Else
statut = "enco"
entsort = 0
End If
'Fabrication des codes nom de cellule nombre des entrées et sortie
If entsort = 1 Or entsort = 2 Then
codecellnb = statut & site & "nb"
codecellnb = codecellnb + 1
codecellmt = statut & site & "mt"
codecellmt = codecellmt + montant
End If

'incrémentation
ligne = ligne + 1
Loop
End With


End Sub

Je sèche complètement.

Patrice.