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
- Excel compter cellule couleur sans vba - Guide
- Type de ram - 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)