Macro Excel avec incrémentation de lignes

Bonjour Charly,

d'après le code VBA de ta copie d'écran :

1) tu as fais comme avec la 1ère méthode où la vérif du fichier n'est pas faite par la sub CpyLig2()

j'espère que tu n'as pas oublié de mettre dans ThisWorkbook le code de la sub Workbook_Open(), qui vérifie la présence du 2ème fichier, et s'il n'est pas présent, l'ouvre (le charge en mémoire vive) ; si tu ne l'as pas fait, alors c'est évidemment la toute 1ère raison pour laquelle ça ne peut pas marcher.

rappel du code de ThisWorkbook :

Option Explicit

Private Sub Workbook_Open()
  Dim wd As Workbook: On Error GoTo OpenWd
  If Dir(ThisWorkbook.Path & "\" & wb2) = "" Then
    MsgBox wb2 & " n'existe pas.", 48, "Erreur": Exit Sub
  End If
  Set wd = Workbooks(wb2): Exit Sub 'échec si non ouvert
OpenWd:
  Workbooks.Open wb2: ThisWorkbook.Activate 'open & wb1
End Sub

2) ton message d'erreur est "L'identificateur sous le curseur n'est pas reconnu"

or ta ligne de code VBA en jaune est : With Workbooks(wb2).Worksheets("NEW_TS_2018")

l'identificateur non reconnu est donc soit le classeur wb2, soit la feuille "NEW_TS_2018" (peut-être même les deux)

tu as : Public Const wb2$ = "INDICATEURS AQP TS 2018.xlsx" ; vérifie si c'est le nom exact de ton classeur

(et ça s'rait pas un .xlsm ou un .xls des fois ? )

enfin, vérifie le nom exact de ta feuille de calcul : "NEW_TS_2018" ; c'est p't'être "NEW TS 2018" ?

( si oui, c'est pas pareil, hein ?)


3) vérifie que ton ordinateur est bien un PC et pas un Commodore 64 ou un Amstrad CPC 464

(non, ça, c'est une blague ! )

dhany

Bonjour Dhany,

Puis-je t'envoyer 2 fichiers plus concret et voir si tu arrives à faire fonctionner la macro?

Merci

Bonjour Charly,

oui, si tes 2 fichiers sont confidentiels, tu peux me les envoyer en MP.

dhany

1 Fichier "Demande Creation" qui doit comporter la macro. Que j'affecterai au bouton 'Sauvegarde"

1 Fichier d'enregistrement "INDICATEURS TS" avec incrémentation des lignes dans la feuille "TS_2018"

Voilà.

Merci

2creation.xlsm (30.53 Ko)

je te retourne tes 2 fichiers :

1creation.xlsm (27.97 Ko)

dhany

Merci Dhany,

Mais cela ne fonctionne pas encore...Peut-être la Version d'Excel???

Toujours les mêmes messages d'erreurs (pièces jointes)

Les fichiers sont dans un même dossier "Macro"

Merci pour ton dévouement

erreur1 erreur2

Cela ne fonctionne pas à l'ouverture du second fichier...

Le reste, oui...

j'comprends pas pourquoi ça marche pas sur ton PC alors qu'y'a aucun problème sur le mien !

essaye avec cet autre fichier :

4creation.xlsm (28.15 Ko)

(le 2ème fichier est inchangé)


si ça veut toujours pas marcher, j'laisserai tomber le chargement automatique du 2ème fichier.

* bien sûr, j'devrai modifier le code VBA

dhany

Dhany merci pour tout

J'ai pu me débrouiller autrement en regroupant tout sur un seul fichier et cela fonctionne.

Par contre au final, j'enregistre un fichier PDF à travers la macro suivante.

Pourrais-tu me trouver les codes pour enregistrer les PDF sous un nom différent (une incrémentation du nom!!!)

Merci

creer pdf

j'm'y connais pas, en export PDF

mais si c'est juste pour l'incrémentation du n°, met ce n° dans une variable, par exemple num, puis :

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\clima\desktop\Nouveau SUIVI\PDF\Demande_TS_" & Format(num, "000") & ".pdf", Quality _ ...

dhany

Désolé, tu mettrais quoi comme "variable"...

ben, une variable numérique entière ; choisis entre Integer et Long :

Dim num As Integer ou Dim num%

Dim num As Long ou Dim num&

dhany

ajout : bien sûr, tu peux choisir un autre nom ; exemple :

Dim numéro As Long ou Dim numéro&

dhany

Je ne trouve pas

??? tu ne trouves pas quoi ? tu ne trouves pas comment déclarer une variable entière ?

je t'ai indiqué plus haut comment faire ; choisis entre Integer et Long selon

le numéro maximum que tu prévois déjà maint'nant, et aussi plus tard.

nombre maximum pour un Integer : 32 767 ➯ à partir de 32 768, prendre Long

nombre maximum pour un Long : 2 147 483 647

dhany

Oui la variable entière...

il y a aussi Byte ; maximum : 255 (mais ça risque de faire trop court !)

à éviter, car sinon, à partir du n° 256 : plantage !

dhany

d'un autre côté, note que d'après ton nom de fichier "Demande_TS_001.pdf" le n° est sur 3 chiffres, donc le dernier sera : "Demande_TS_999.pdf" ➯ Byte est insuffisant car maximum = 255 ➯ faut prendre au moins Integer

dhany

Que manque t-il?

variable

j'ai pas envie d'recopier ton image ! alors utilise la balise code </>

Rechercher des sujets similaires à "macro incrementation lignes"