Erreur de compilation:While sans Wend
Résolu
franck
-
franck -
franck -
Bonjour, a chaque fois que j'ouvre un fichier excel,cette erreur s'ouvre à chaque fois,voici la liste ou il me dit qu'il y a le problème mais je ne m'y connais pas assez pour réparer le problème,est ce que quelqu'un pourrais m'aider?Merci
ieser Source stammt von http://www.vb-fun.de und kann frei
'in EIGENEN (auch in EIGENEN kommerziellen) Projekten verwendet
'werden. Er darf NICHT auf anderen Webseiten oder Foren ohne
'Quellenangabe veröffentlicht werden (siehe hierzu auch die
'Hinweise unter "Urheber- und Kennzeichenrecht" im Impressum).
'Für eventuelle Schäden wird nicht gehaftet.
'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source-Code !
'========================================================================
'In diesem Modul enthalten:
'
' - Globale Konstanten
' - Globale Variablen
' - Initialisierungsprozedur für das Add-In
' - Add-In-Deinstallationsprozedur
' - Prozedur zum Speichern der Benutzereinstellungen (Registry)
' - Prozedur zum Löschen der Registry-Einträge
'========================================================================
Option Explicit
Option Private Module
'========================================================================
' Globale Konstanten
'========================================================================
Public gcAPP_NAME As String 'Name des AddIns
Public gcCBAR_NAME As String 'Name der Symbolleiste
Public gcCTBarEntry As String 'Name des Eintrags auf der Symbolleiste
'Registry (HKEY_CURRENT_USER\Software\VB and VBA Program Settings\)
Public gcREG_APP As String
Public gcREG_TOOLBAR As String
'========================================================================
' Globale Variablen
'========================================================================
'========================================================================
' Initialisierungs- und Terminierungsprozedur
'========================================================================
Public Sub AddIn_Initialize()
'Initialisierungsprozedur
Dim settings As Object
gcAPP_NAME = "ExcelImporter"
gcCTBarEntry = "Import measured data from device"
gcREG_APP = "ExcelImporter"
Dim settingsPath As String
Dim langId As String
'Applikationsabhängige Texte
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Config.ini"
If settings.Init(settingsPath) Then
gcAPP_NAME = settings.GetString("App", "AppName", gcAPP_NAME)
gcREG_APP = settings.GetString("App", "AppNameShort", gcREG_APP)
End If
'Sprachabhängige Texte
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Install.ini"
settings.Init settingsPath
langId = settings.GetString("InstallSettings", "Language", "1033")
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Texts.dat"
If settings.Init(settingsPath) Then
Dim strLang As String
Dim strCmpLangId As String
Dim nLangIdx As Long
nLangIdx = settings.GetLong("Languages", "LangCount")
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
'Symbolleiste erstellen
CreateCommandBar
End Sub
Public Sub AddIn_Terminate()
'Wird aufgerufen, wenn das AddIn geschlossen wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_BeforeClose()
'Einstellungen in der Registry speichern
AddIn_SaveSettings
End Sub
Public Sub AddIn_Uninstall()
'Wird nur dann aufgerufen, wenn das AddIn über den AddIn-Manager
'installiert wurde und das AddIn deinstalliert wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_AddinUninstall()
'Prozedur zum "Aufräumen" aufrufen
AddIn_Terminate
'Registry-Einträge komplett löschen
AddIn_DeleteRegSettings
'Symbolleiste löschen
DeleteCommandBar
End Sub
Private Sub AddIn_SaveSettings()
'Im Add-In gemachte Benutzereinstellungen in der Registry speichern
'Symbolleisten-Einstellung
Dim objCBar As Office.CommandBar
Dim lngPosition As Long
Dim blnVisible As Boolean
On Error Resume Next
Set objCBar = ThisWorkbook.Application.CommandBars(gcCBAR_NAME)
If Not objCBar Is Nothing Then
With objCBar
lngPosition = .Position 'Position speichern
blnVisible = .Visible 'Sichtbarkeit speichern
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Visible", CLng(.Visible)
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Position", .Position
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Top", .Top
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Left", .Left
SaveSetting gcREG_APP, gcREG_TOOLBAR, "RowIndex", .RowIndex
.Visible = False 'Unsichtbar machen, damit die "schwimmende" Symbolleiste
.Position = msoBarFloating 'nicht sichtbar ist, wird benötigt um die Breite zu ermitteln
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Width", .Width
.Position = lngPosition 'Position wiederherstellen
.Visible = blnVisible 'Sichtbarkeit wiederherstellen
End With
Set objCBar = Nothing
End If
On Error GoTo 0
End Sub
ieser Source stammt von http://www.vb-fun.de und kann frei
'in EIGENEN (auch in EIGENEN kommerziellen) Projekten verwendet
'werden. Er darf NICHT auf anderen Webseiten oder Foren ohne
'Quellenangabe veröffentlicht werden (siehe hierzu auch die
'Hinweise unter "Urheber- und Kennzeichenrecht" im Impressum).
'Für eventuelle Schäden wird nicht gehaftet.
'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source-Code !
'========================================================================
'In diesem Modul enthalten:
'
' - Globale Konstanten
' - Globale Variablen
' - Initialisierungsprozedur für das Add-In
' - Add-In-Deinstallationsprozedur
' - Prozedur zum Speichern der Benutzereinstellungen (Registry)
' - Prozedur zum Löschen der Registry-Einträge
'========================================================================
Option Explicit
Option Private Module
'========================================================================
' Globale Konstanten
'========================================================================
Public gcAPP_NAME As String 'Name des AddIns
Public gcCBAR_NAME As String 'Name der Symbolleiste
Public gcCTBarEntry As String 'Name des Eintrags auf der Symbolleiste
'Registry (HKEY_CURRENT_USER\Software\VB and VBA Program Settings\)
Public gcREG_APP As String
Public gcREG_TOOLBAR As String
'========================================================================
' Globale Variablen
'========================================================================
'========================================================================
' Initialisierungs- und Terminierungsprozedur
'========================================================================
Public Sub AddIn_Initialize()
'Initialisierungsprozedur
Dim settings As Object
gcAPP_NAME = "ExcelImporter"
gcCTBarEntry = "Import measured data from device"
gcREG_APP = "ExcelImporter"
Dim settingsPath As String
Dim langId As String
'Applikationsabhängige Texte
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Config.ini"
If settings.Init(settingsPath) Then
gcAPP_NAME = settings.GetString("App", "AppName", gcAPP_NAME)
gcREG_APP = settings.GetString("App", "AppNameShort", gcREG_APP)
End If
'Sprachabhängige Texte
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Install.ini"
settings.Init settingsPath
langId = settings.GetString("InstallSettings", "Language", "1033")
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Texts.dat"
If settings.Init(settingsPath) Then
Dim strLang As String
Dim strCmpLangId As String
Dim nLangIdx As Long
nLangIdx = settings.GetLong("Languages", "LangCount")
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
'Symbolleiste erstellen
CreateCommandBar
End Sub
Public Sub AddIn_Terminate()
'Wird aufgerufen, wenn das AddIn geschlossen wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_BeforeClose()
'Einstellungen in der Registry speichern
AddIn_SaveSettings
End Sub
Public Sub AddIn_Uninstall()
'Wird nur dann aufgerufen, wenn das AddIn über den AddIn-Manager
'installiert wurde und das AddIn deinstalliert wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_AddinUninstall()
'Prozedur zum "Aufräumen" aufrufen
AddIn_Terminate
'Registry-Einträge komplett löschen
AddIn_DeleteRegSettings
'Symbolleiste löschen
DeleteCommandBar
End Sub
Private Sub AddIn_SaveSettings()
'Im Add-In gemachte Benutzereinstellungen in der Registry speichern
'Symbolleisten-Einstellung
Dim objCBar As Office.CommandBar
Dim lngPosition As Long
Dim blnVisible As Boolean
On Error Resume Next
Set objCBar = ThisWorkbook.Application.CommandBars(gcCBAR_NAME)
If Not objCBar Is Nothing Then
With objCBar
lngPosition = .Position 'Position speichern
blnVisible = .Visible 'Sichtbarkeit speichern
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Visible", CLng(.Visible)
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Position", .Position
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Top", .Top
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Left", .Left
SaveSetting gcREG_APP, gcREG_TOOLBAR, "RowIndex", .RowIndex
.Visible = False 'Unsichtbar machen, damit die "schwimmende" Symbolleiste
.Position = msoBarFloating 'nicht sichtbar ist, wird benötigt um die Breite zu ermitteln
SaveSetting gcREG_APP, gcREG_TOOLBAR, "Width", .Width
.Position = lngPosition 'Position wiederherstellen
.Visible = blnVisible 'Sichtbarkeit wiederherstellen
End With
Set objCBar = Nothing
End If
On Error GoTo 0
End Sub
A voir également:
- Erreur de compilation:While sans Wend
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
4 réponses
Hello,
Perso, je mettrais le wend après le end if dans cette partie :
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
Wend
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
Perso, je mettrais le wend après le end if dans cette partie :
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
Wend
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
merci pour l'astuce mais maintenant c'est a la ligne du dessous qui me pose problème,il me dit erreur de compilation bloc If sans End If et avec le premier End sub en surbrillance,voici la ligne et merci d'avance
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
'Symbolleiste erstellen
CreateCommandBar
End Sub
Public Sub AddIn_Terminate()
'Wird aufgerufen, wenn das AddIn geschlossen wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_BeforeClose()
'Einstellungen in der Registry speichern
AddIn_SaveSettings
End Sub
gcCBAR_NAME = gcAPP_NAME
gcREG_TOOLBAR = "ToolBar"
'Symbolleiste erstellen
CreateCommandBar
End Sub
Public Sub AddIn_Terminate()
'Wird aufgerufen, wenn das AddIn geschlossen wird.
' Siehe Codebereich 'DieseArbeitsmappe'
' -> Private Sub Workbook_BeforeClose()
'Einstellungen in der Registry speichern
AddIn_SaveSettings
End Sub
settingsPath = ThisWorkbook.Path
settingsPath = settingsPath & "\Texts.dat"
If settings.Init(settingsPath) Then
Dim strLang As String
Dim strCmpLangId As String
Dim nLangIdx As Long
nLangIdx = settings.GetLong("Languages", "LangCount")
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
Fectivement, comme tu peux le constater dans ce que je t'ai mis en gras italique, il y a 2 if pour un seul end if.
Donc, soit tu ajoutes un second end if après le premier (mais je ne garantis pas l'intégrité de la macro, j'ai vraiment pas le temps d'analyser ce que ça fait exactement), soit tu jettes simplement le script, vu qu'il est tout moisi :o)
settingsPath = settingsPath & "\Texts.dat"
If settings.Init(settingsPath) Then
Dim strLang As String
Dim strCmpLangId As String
Dim nLangIdx As Long
nLangIdx = settings.GetLong("Languages", "LangCount")
While (nLangIdx > 0)
nLangIdx = nLangIdx - 1
strLang = settings.GetString("Languages", "Lang" & nLangIdx, "")
strCmpLangId = settings.GetString("Languages", strLang, "")
If (strCmpLangId = langId) Then
gcCTBarEntry = settings.GetString(strLang, "T_ToolbarBtnText", gcCTBarEntry)
nLangIdx = 0
End If
Fectivement, comme tu peux le constater dans ce que je t'ai mis en gras italique, il y a 2 if pour un seul end if.
Donc, soit tu ajoutes un second end if après le premier (mais je ne garantis pas l'intégrité de la macro, j'ai vraiment pas le temps d'analyser ce que ça fait exactement), soit tu jettes simplement le script, vu qu'il est tout moisi :o)