Déclaration de variable dans une macro + formule excel NB.SI

sadness78

XLDnaute Junior
Bonjour le forum,

J'ai un soucis sur une macro, j'aimerais la faire évoluer pour qu'elle reste compatible dans le temps.

A l'origine je sauvegarde mes éléments dans un onglet 2012 dans un fichier 2 ce qui marche très bien :

Macro de départ :
Code:
Genere_QS_AFAPS()
'Incrémenter num de facture
Dim i As Long
Dim TestString As String
Dim LResult As String
Dim fichierreferencefacture As String
Dim ongletreference As String
Dim colonnereference As String


LResult = Mid(ActiveSheet.Range("C7").Value, 5, 6)
TestString = Mid(ActiveSheet.Range("C7").Value, 11, 2)

fichierreferencefacture = "G:\OPERATIONS\OPS_Region_Europe\Aviation\Production Pièces\Historique\historique_facture.xls"
If Dir(fichierreferencefacture) = "" Then
    MsgBox "Fichier de Reference non trouvé"
    Exit Sub
End If

ongletreference = "2012"
colonnereference = "A"

tempstr = retournevaleur(fichierreferencefacture, ongletreference, colonnereference)

If tempstr = "" Then
Else
    tempstr = StrReverse(tempstr)
    tempstr = Split(tempstr, "/")(0)
    tempstr = StrReverse(tempstr)
    i = CLng(tempstr) + 1
End If
    


Range("K40").Value = LResult & "/" & TestString & "/" & i


ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, LResult & "/" & TestString & "/" & i
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("A1").Value, 1
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("C15").Value, 2
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("C21").Value, 3
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("H7").Value, 4
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("H10").Value, 5

Et mon objectif est de prendre l'année se trouvant dans ma cellule A34 et de choisir le fichier en fonction de cette valeur

Essai de macro :

Code:
Sub Genere_AFAPS()
'Incrémenter num de facture
Dim i As Long
Dim TestString As String
Dim LResult As String
Dim fichierreferencefacture As String
Dim ongletreference As String
Dim colonnereference As String
Dim Vannee As String


LResult = Mid(ActiveSheet.Range("C7").Value, 5, 6)
TestString = Mid(ActiveSheet.Range("C7").Value, 11, 2)
Vannee = Mid(ActiveSheet.Range("A34"), , 4)

fichierreferencefacture = "G:\OPERATIONS\OPS_Region_Europe\Aviation\Production Pièces\Historique\historique_facture.xls"
If Dir(fichierreferencefacture) = "" Then
    MsgBox "Fichier de Reference non trouvé"
    Exit Sub
End If

ongletreference = "Vannee"
colonnereference = "A"

tempstr = retournevaleur(fichierreferencefacture, ongletreference, colonnereference)

If tempstr = "" Then
Else
    tempstr = StrReverse(tempstr)
    tempstr = Split(tempstr, "/")(0)
    tempstr = StrReverse(tempstr)
    i = CLng(tempstr) + 1
End If
    


Range("G36").Value = LResult & "/" & TestString & "/" & i


ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, LResult & "/" & TestString & "/" & i
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("A1").Value, 1
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("C15").Value, 2
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("C21").Value, 3
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("H7").Value, 4
ecrirevaleurderniereligne fichierreferencefacture, ongletreference, colonnereference, ActiveSheet.Range("H10").Value, 5


Et mon 2ème problème concerne une fonction NB.SI avec laquelle je me bat. J'aimerais commencer à compter à partir de 8 et non de 1.

Exemple

Si 1er champ remplis mettre le chiffre 8
Si 2ème champ remplis vérifier que si le 1er est remplis mettre 9 sinon mettre 8 et ainsi de suite.

Merci d'avance à tous.

Cdlt,

Sad
 

Pièces jointes

  • test.xls
    22.5 KB · Affichages: 32
  • test.xls
    22.5 KB · Affichages: 35
  • test.xls
    22.5 KB · Affichages: 36

sadness78

XLDnaute Junior
Re : Déclaration de variable dans une macro + formule excel NB.SI

Bonjour le forum, et joyeuse fêtes...

J'ai un peu évolué dans ma recherche, par contre je pense que c'est un peu bancal comme façon de faire mais bon au moins ça marche pour la 2ème ligne je vais surement rajouter une condition SI de plus ;)

=SI(ESTVIDE(G8);"";SI(ESTVIDE(G7);8;9))

EDIT :

et Pour la 3ème ligne c'est quasi bon sauf pour le cas ou il n'y a rien à la ligne G7 et G8 si quelqu'un à une idée

=SI(ESTVIDE(G9);"";SI(ESTVIDE(G7:K8);8;SI(ESTVIDE(G8);SOMME(F7+1);SOMME(F8+1))))

+ MAJ de la pièce jointe.

Merci d'avance
 

Pièces jointes

  • test.xls
    23 KB · Affichages: 30
  • test.xls
    23 KB · Affichages: 33
  • test.xls
    23 KB · Affichages: 32
Dernière édition:

sadness78

XLDnaute Junior
Re : Déclaration de variable dans une macro + formule excel NB.SI

Bonjour le forum, bonne année à tous,

En cherchant un peu partout j'ai résolu mon problème de macro :
Code:
ongletreference = "2012"

par
Code:
ongletreference = Range("A34")

Par contre pour mon problème de formule, je rame encore si une âme charitable pouvait m'aider.
 

Discussions similaires

Statistiques des forums

Discussions
312 749
Messages
2 091 640
Membres
105 009
dernier inscrit
aurelien76110