SOS !! Problème ByRef [VBA]
Résolu
mimi_1990
Messages postés
99
Statut
Membre
-
mimi_1990 Messages postés 99 Statut Membre -
mimi_1990 Messages postés 99 Statut Membre -
Bonjour a tous !
J'ai un Souci sur VBA qui me prends beaucoup de temps et je n'en ai malheureusement plus beaucoup ...
Voici le code de mon userform.
Mon souci:
Lorque je clique sur OK je recois le message d'erreur suivant:
erreur de compilation:
Type d'argument ByRef incompatible
j'ai commencé VBA il y a deux semaines et je ne comprends pas pourquoi j'obtienss cela c'est pourquoi je me tourne vers vous ...
Vos réponses me seront d'une aide précieuse...
D'avance merci
mimi_1990
PS: Si vous trouvez d'autres incohérences dans mon code n'hésitez pas tout conseil est bon a prendre !
J'ai un Souci sur VBA qui me prends beaucoup de temps et je n'en ai malheureusement plus beaucoup ...
Voici le code de mon userform.
Mon souci:
Lorque je clique sur OK je recois le message d'erreur suivant:
erreur de compilation:
Type d'argument ByRef incompatible
j'ai commencé VBA il y a deux semaines et je ne comprends pas pourquoi j'obtienss cela c'est pourquoi je me tourne vers vous ...
Option Explicit Public DestWs As Worksheet Private Sub OK_Click() Dim pos, pl, i, startrow As Integer Dim ws2 As Worksheet pos = InStr(1, RefEdit1.Value, "!") If pos Then Set ws2 = Worksheets(Left(RefEdit1.Value, pos - 1)) pl = 1 For i = 1 To Réel.selection.ListCount startrow = 1 pl = copiercoller(ws2, Réel.selection.List(i - 1), pl) Next i Unload Me ElseIf ws2 Is Nothing Then MsgBox "Veuillez choisir une feuille destination", vbExclamation End If End Sub Private Sub Parcourir_Click() Dim i As Integer Réel.selection.Clear 'Demande de selection des fichiers With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True .Show For i = 1 To .SelectedItems.Count Réel.selection.AddItem (.SelectedItems(i)) Next i End With End Sub Function copiercoller(file As String, ByVal from As Integer, ByVal ws2 As Worksheet) Dim ws, aws As Worksheet Workbooks.OpenText Filename:= _ file, _ Origin:=xlMSDOS, startrow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _ Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _ Array(9, 1), Array(10, 1)), DecimalSeparator:=",", TrailingMinusNumbers:=True For Each ws In ActiveWorkbook.Worksheets ' A row for reference to the source file Dim memfrom As Integer memfrom = from ' Copy/Paste Range(ws.Cells(1, 1), ws.Cells.SpecialCells(xlLastCell)).Copy aws.Paste Destination:=aws.Cells(from, 1) ' calculate next line from = from + ws.Cells.SpecialCells(xlLastCell).row Next ws ActiveWorkbook.Close Savechanges:=False copiercoller = from End Function
Vos réponses me seront d'une aide précieuse...
D'avance merci
mimi_1990
PS: Si vous trouvez d'autres incohérences dans mon code n'hésitez pas tout conseil est bon a prendre !
A voir également:
- Vba type d'argument byref incompatible
- Clear type - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Type de ram - Guide
- Excel compter cellule couleur sans vba - Guide
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
2 réponses
Bon c'est bon j'ai trouvé c'est juste que mon ws2 quand j'appelais ma fonction copier coller dans le OK_Click n'est pas a la bonne place !
il fallait faire :
et dans ma fonction copiercoller il fallait echanger aws par ws2 et ws par aws (ou autrechose)
il fallait faire :
pl = copiercoller(Réel.selection.List(i - 1), pl, ws2)
et dans ma fonction copiercoller il fallait echanger aws par ws2 et ws par aws (ou autrechose)