"erreur d’exécution 13 Incompatibilité de Type" dans VBA
Résolu
zay19
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je suis toute nouvelle dans la programmation, j'ai eu ce code sur internet que j'ai modifié pour moi. Il a fonctionné très bien pendant quelques semaines et là ça ne fonctionne plus.
J'ai essayé différentes choses mais impossible de trouver.
Mon fichier est un fichier qui permet de faire des factures automatiques et archive dès que je valide (via un bouton archive) sur une autre page du fichier.
Voici mon code:
EDIT : Ajout des balises de code
L'erreur se trouve dans la dernière ligne mais je comprends pas.
Merci infiniment de votre aide.
Zay
Je suis toute nouvelle dans la programmation, j'ai eu ce code sur internet que j'ai modifié pour moi. Il a fonctionné très bien pendant quelques semaines et là ça ne fonctionne plus.
J'ai essayé différentes choses mais impossible de trouver.
Mon fichier est un fichier qui permet de faire des factures automatiques et archive dès que je valide (via un bouton archive) sur une autre page du fichier.
Voici mon code:
Sub Archiver() ligne = Sheets("Historique_ventes").Range("A2").End(xlDown).Row + 1 Sheets("Historique_ventes").Range("A" & ligne).Value = Sheets("Facture").Range("C6").Value Sheets("Historique_ventes").Range("B" & ligne).Value = Sheets("Facture").Range("C9").Value Sheets("Historique_ventes").Range("C" & ligne).Value = Sheets("Facture").Range("E5").Value Sheets("Historique_ventes").Range("D" & ligne).Value = Sheets("Facture").Range("C12").Value Sheets("Historique_ventes").Range("E" & ligne).Value = Sheets("Facture").Range("G33").Value Sheets("Historique_ventes").Range("F" & ligne).Value = Sheets("Facture").Range("E8").Value Sheets("Historique_ventes").Range("G" & ligne).Value = Sheets("Facture").Range("G29").Value Sheets("Historique_ventes").Range("H" & ligne).Value = Sheets("Facture").Range("G31").Value Sheets("Historique_ventes").Range("I" & ligne).Value = Sheets("Facture").Range("D12").Value Sheets("Facture").Range("D12:D27").ClearContents Sheets("Facture").Range("E5:G5").ClearContents Sheets("Facture").Range("C6").Value = Sheets("Facture").Range("C6").Value + 1 End Sub
EDIT : Ajout des balises de code
L'erreur se trouve dans la dernière ligne mais je comprends pas.
Merci infiniment de votre aide.
Zay
A voir également:
- "erreur d’exécution 13 Incompatibilité de Type" dans VBA
- Fifa 13 - Télécharger - Jeux vidéo
- Erreur 3005 france tv - Forum TV & Vidéo
- Test redmi note 13 5g - Accueil - Téléphones
- Iptv erreur de lecture - Forum TV & Vidéo
- Type de ram - Guide
7 réponses
Merci Le Pingou,
J'ai une valeur 2020-117 et j'aimerai 2020-118.
Cela a fonctionné jusqu'à maintenant, je ne vois pas pourquoi ça ne veut plus.
J'ai une valeur 2020-117 et j'aimerai 2020-118.
Cela a fonctionné jusqu'à maintenant, je ne vois pas pourquoi ça ne veut plus.
Bonjour,
Vous avez la réponse et proposition ici:
https://forums.commentcamarche.net/forum/affich-36647136-numerotation-automatique-de-factures#8
Vous avez la réponse et proposition ici:
https://forums.commentcamarche.net/forum/affich-36647136-numerotation-automatique-de-factures#8
Bonjour,
Petite erreur de ma part,:
https://forums.commentcamarche.net/forum/affich-36647136-numerotation-automatique-de-factures#12
Petite erreur de ma part,:
https://forums.commentcamarche.net/forum/affich-36647136-numerotation-automatique-de-factures#12
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour a vous deux,
zay19/
Faites ce que le_Pingou a ecrit.
Deux facon de faire:
_ voir de visu la cellule C6
ou
_ quand vous avez l'erreur, click sur ok et passez le curseur souris sur range("C6") de la ligne d'erreur.
Si valeur est autre qu'un nombre, c'est evident
Si valeur est un nombre entre double cotes, la faut faire kake chose
Ci-dessous, code un peu plus mieux bien
zay19/
Faites ce que le_Pingou a ecrit.
Deux facon de faire:
_ voir de visu la cellule C6
ou
_ quand vous avez l'erreur, click sur ok et passez le curseur souris sur range("C6") de la ligne d'erreur.
Si valeur est autre qu'un nombre, c'est evident
Si valeur est un nombre entre double cotes, la faut faire kake chose
Ci-dessous, code un peu plus mieux bien
Sub Archiver() With Sheets("Historique_ventes") ligne = .Range("A2").End(xlDown).Row + 1 .Range("A" & ligne).Value = Sheets("Facture").Range("C6").Value .Range("B" & ligne).Value = Sheets("Facture").Range("C9").Value .Range("C" & ligne).Value = Sheets("Facture").Range("E5").Value .Range("D" & ligne).Value = Sheets("Facture").Range("C12").Value .Range("E" & ligne).Value = Sheets("Facture").Range("G33").Value .Range("F" & ligne).Value = Sheets("Facture").Range("E8").Value .Range("G" & ligne).Value = Sheets("Facture").Range("G29").Value .Range("H" & ligne).Value = Sheets("Facture").Range("G31").Value .Range("I" & ligne).Value = Sheets("Facture").Range("D12").Value End With With Sheets("Facture") .Range("D12:D27").ClearContents .Range("E5:G5").ClearContents .Range("C6").Value = .Range("C6").Value + 1 End With End Sub
Je viens d'essayer en modifiant l'intégralité et ça ne fonctionne pas, après c'est la première fois que je programme donc je peux avoir mal compris. Voilà ce que j'ai fait et il me met la même erreur sur la dernière ligne.
Je vais le code que vous proposez, merci.
Sub Archiver()
Dim liste(), ligvide As Long
With Sheets("Facture")
liste = Array(.[C6], .[C9], .[E5], .[C12], .[G33], .[E8], .[G29], .[G31], .[D12])
End With
With Sheets("Historique_ventes")
ligvide = .Columns("A").Find("", .Range("A1")).Row
.Cells(ligvide, "A").Resize(1, UBound(liste) + 1) = liste
.Activate
Sheets("Facture").Range("C6").Value = Left(Range("C6"), 5) + Format(CInt(Right(Range("C6"), Len(Range("C6")) - 5)) + 1, "000")
End With
End Sub
Je vais le code que vous proposez, merci.
Sub Archiver()
Dim liste(), ligvide As Long
With Sheets("Facture")
liste = Array(.[C6], .[C9], .[E5], .[C12], .[G33], .[E8], .[G29], .[G31], .[D12])
End With
With Sheets("Historique_ventes")
ligvide = .Columns("A").Find("", .Range("A1")).Row
.Cells(ligvide, "A").Resize(1, UBound(liste) + 1) = liste
.Activate
Sheets("Facture").Range("C6").Value = Left(Range("C6"), 5) + Format(CInt(Right(Range("C6"), Len(Range("C6")) - 5)) + 1, "000")
End With
End Sub
Merci à tous les deux!!!
J'ai fait un mélange de vos deux réponses et ça fonctionne.
Je le mets là au cas ça puisse aider quelqu'un d'autre.
Sub Archiver()
With Sheets("Historique_ventes")
ligne = .Range("A2").End(xlDown).Row + 1
.Range("A" & ligne).Value = Sheets("Facture").Range("C6").Value
.Range("B" & ligne).Value = Sheets("Facture").Range("C9").Value
.Range("C" & ligne).Value = Sheets("Facture").Range("E5").Value
.Range("D" & ligne).Value = Sheets("Facture").Range("C12").Value
.Range("E" & ligne).Value = Sheets("Facture").Range("G33").Value
.Range("F" & ligne).Value = Sheets("Facture").Range("E8").Value
.Range("G" & ligne).Value = Sheets("Facture").Range("G29").Value
.Range("H" & ligne).Value = Sheets("Facture").Range("G31").Value
.Range("I" & ligne).Value = Sheets("Facture").Range("D12").Value
End With
With Sheets("Facture")
.Range("D12:D27").ClearContents
.Range("E5:G5").ClearContents
.Range("C6").Value = Left(Range("C6"), 5) + Format(CInt(Right(Range("C6"), Len(Range("C6")) - 5)) + 1, "000")
End With
End Sub
Immense gratitude!
Très bon dimanche.
Zay
J'ai fait un mélange de vos deux réponses et ça fonctionne.
Je le mets là au cas ça puisse aider quelqu'un d'autre.
Sub Archiver()
With Sheets("Historique_ventes")
ligne = .Range("A2").End(xlDown).Row + 1
.Range("A" & ligne).Value = Sheets("Facture").Range("C6").Value
.Range("B" & ligne).Value = Sheets("Facture").Range("C9").Value
.Range("C" & ligne).Value = Sheets("Facture").Range("E5").Value
.Range("D" & ligne).Value = Sheets("Facture").Range("C12").Value
.Range("E" & ligne).Value = Sheets("Facture").Range("G33").Value
.Range("F" & ligne).Value = Sheets("Facture").Range("E8").Value
.Range("G" & ligne).Value = Sheets("Facture").Range("G29").Value
.Range("H" & ligne).Value = Sheets("Facture").Range("G31").Value
.Range("I" & ligne).Value = Sheets("Facture").Range("D12").Value
End With
With Sheets("Facture")
.Range("D12:D27").ClearContents
.Range("E5:G5").ClearContents
.Range("C6").Value = Left(Range("C6"), 5) + Format(CInt(Right(Range("C6"), Len(Range("C6")) - 5)) + 1, "000")
End With
End Sub
Immense gratitude!
Très bon dimanche.
Zay