Macro en panne

etigi

XLDnaute Junior
Bonjour
J'ai mis en place un macro qui devrait copier une fiche dans un nouvel onglet avec attribution d'un nom, en même temps enregistrer dans une base de donnée les éléments de cette fiche.

Cela a fonctionné et tout à coup la fiche copiée et enregistrée et toujours la même, elle se copie et enregistre même dans les copie et enregistrement précédent.
Je n'y comprend plus rien.

De plus nous sommes dimanche soir et e devait finir tout cela pour demain,

je vous joins cette macro rebelle, si quelqu'un peut m'aider!!! ce serait super, merci.
Etienne

Sub creatfeuille()
Dim sh As Worksheet
Dim i As Integer
Dim NomF As String

' recherche du numéro
On Error Resume Next
If Err > 0 Then Err.Clear
For i = 1 To 100
Sheets(i).Activate
' numéro trouvé
If Err.Number > 0 Then Exit For

Next i

With Sheets("Relevtriproptype")
.Copy after:=Sheets(Sheets.Count - 1)

'Nomme la nouvelle feuille avec le nom contenu en C6 de Sheets("RECAP")
ActiveSheet.Name = Sheets("RECAP").Range("C6").Value
'Ajout du numéro de facture dans la nouvelle feuille
ActiveSheet.Range("F18;G18;H18") = "Facture N°" & Sheets("RECAP").Range("C6").Value
'Mémorisation du nom de la dernière feuille pour l'utiliser en tant qu'hyperlien plus bas
NomF = ActiveSheet.Name

End With

With Sheets("Recap")
Dim dl1 As Long ' dernière ligne

dl1 = .Range("a65536").End(xlUp).Row + 1
'création du lien hypertext dans la feuille RECAP en prenant le nom de la dernière feuille créée
.Range("C" & dl1).Hyperlinks.Add Anchor:=.Range("C" & dl1), Address:="", SubAddress:= _
"'" & NomF & "'!A1", TextToDisplay:=NomF

.Range("a" & dl1).Value = i
'Incrémentation pour la prochaine facture
.Range("C6").Value = .Range("C6").Value + 1
'Inscription des formules dans la feuille RECAP
'pour récupérer les données des factures
.Range("K" & dl1) = "=" & Sheets(NomF).Name & "!F14" 'Inscription Date
.Range("D" & dl1) = "=" & Sheets(NomF).Name & "!F20" 'Réf Clt
.Range("E" & dl1) = "=" & Sheets(NomF).Name & "!Q14" 'Statut
.Range("F" & dl1) = "=" & Sheets(NomF).Name & "!F18" 'Période
.Range("G" & dl1) = "=" & Sheets(NomF).Name & "!Q16" 'Nom
.Range("H" & dl1) = "=" & Sheets(NomF).Name & "!Q18" 'Adresse
.Range("I" & dl1) = "=" & Sheets(NomF).Name & "!Q20" 'CP
.Range("J" & dl1) = "=" & Sheets(NomF).Name & "!S20" 'Ville
.Range("L" & dl1) = "=" & Sheets(NomF).Name & "!Z62" 'Débit TTC
.Range("M" & dl1) = "=" & Sheets(NomF).Name & "!Z63" 'Crédit TTC
.Range("N" & dl1) = "=" & Sheets(NomF).Name & "!Z64" 'Solde propriétaire TTC
.Range("O" & dl1) = "=" & Sheets(NomF).Name & "!I62" 'Frais de gestion HT
.Range("P" & dl1) = "=" & Sheets(NomF).Name & "!I63" 'TVA s/frais de gestion
.Range("Q" & dl1) = "=" & Sheets(NomF).Name & "!I64" 'Frais de gestion TTC

End With

End Sub
 

Excel-lent

XLDnaute Barbatruc
Re : Macro en panne

Bonsoir Etigi,

etigi à dit:
Code:
' recherche du numéro
On Error Resume Next

If Err > 0 Then Err.Clear

For i = 1 To 100
     Sheets(i).Activate
     ' numéro trouvé
     If Err.Number > 0 Then Exit For
Next i

Je ne vois pas l'intérêt de cette partie du code!

Tu cherche quoi comme numéro? Le nombre d'onglet? Un numéro de facture????

Pour trouver ton erreur, personnellement sans le fichier, j'ai un peu de mal!

Tu peux le mettre en ligne?

Bonne soirée
 

Excel-lent

XLDnaute Barbatruc
Re : Macro en panne

Bonsoir Etigi,

Tout d'abord bravo, tu as réussi à mettre une pièce jointe. Bon courage pour la suite.

Remarque sur tes onglets factures, cellules G18, masque la fin de la cellule F18 où figure le numéro de ta facture.

On ne le voit pas, car ta cellule étant trop petite, où la formule en G18 mis trop à gauche (besoin d'être décalé à droite).

Concernant ta macro :
J'ai remarqué tu avais enlevé la partie dont je t'ai parlé. J'ai lu, relu, et re-relu ta macro, je n'ai rien trouvé qui me semble bizarre!!!

J'ai testé la macro, pour moi elle fonctionne parfaitement! Et cela quelquesoit l'onglet d'où je la lance! Je ne vois donc pas ce qui te chagrine!!!

La macro :
-> recopie l'onglet "Model1", lui donne en nom d'onglet le numéro de facture
-> cette facture est rajouté dans l'onglet récap.

J'ai vérifié ce qu'elle recopie, c'est juste!!!

Où es-ton soucis? Quel manip fais-tu exactement? Qu'elle résultat précis obtiens-tu? Lequel voudrais-tu à la place?

Car je vois pas du tout!!

(ta macro peut-être simplifié, raccourci, c'est sûr, mais le résultat me semble juste)

A te lire
 

Bebere

XLDnaute Barbatruc
Re : Macro en panne

bonjour Excellent,Etigi

j'ai testé et cela fonctionne bien
sauf les dates inversion jour mois
avec ligne suivante c'est bon
.Range("b" & dl1).Value = CDate(Date) ' Format(Now, "dd/mm/yyyy")
à bientôt
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa