Macro qui ne marche que sur un onglet

Bonjour à tous,

J'ai créé une macro qui me sert à créer un formulaire.

Ce formulaire ajoute des données dans un tableau situé dans l'onglet appelé TEST.

Pour lancer cette macro, j'ai créé un bouton sur un autre onglet, et j'y ai affecté la macro.

Mon problème: quand je lance la macro via l'onglet TEST (que ce soit via le raccourcie Ctrl+Shit+lettre ou via VBA F5) la macro s’exécute correctement et le formulaire marche: les données s'ajoute à mon tableau dans l'onglet TEST.

Cependant, quand je lance la macro via le bouton qui se situe sur un autre onglet, seul le formulaire se lance, mais les données ajoutées dans le formulaire ne sont pas ajoutées au tableau situé dans l'onglet TEST.

Avez-vous une idée du problème?

Merci d'avance!

Bonjour,

à vue de nez et sans fichier exemple..

si tu déclare ta feuille ça devrait aller

set Ws1 = sheets("tafeuilleoùtuveuxdéposerlesdata")

Ws1.cells("A",1) = combobox1.value avec les bonnes coordonnées ("A" , 1) bien sur

Ws1.cells("B",1) = combobox2.value

etc, etc..

P.

Bonjour Egidio, bonjour le forum,

Si ta macro est lancée depuis un bouton dans un onglet qui n'est pas l'onglet TEST, il te faut, dans le code, spécifier le nom de l'onglet chaque fois que tu fais référence à celui-ci. Par exemple le code ci-dessous lancé depuis un CommandButton dans TEST marchera très bien :

Range("A1").Value = Me.TextBox1.Value

Lancé depuis un CommandButton dans autre onglet il te faudra écrire :

Sheets("TEST").Range("A1").Value = Me.TextBox1.Value

Avec le fichier qui va bien on pourra te donner des explications plus précises...

[Édition]

Bonjour Patrick nos posts se sont croisés...

Merci pour vos réponses!

J'ai ajouté Sheets("TEST"). devant Range("A" & L).Value = ComboBox1 comme vous l'avez suggéré et surprise, ça marche!

Juste pour info du coups, voici mon code:

Option Explicit

Dim Ws As Worksheet

'Formulaire

Private Sub UserForm_Initialize()

Dim J As Long

Dim I As Integer

ComboBox2.ColumnCount = 1 'Choose the brand

ComboBox2.List() = Array("Schneider Electric", "Bender")

Set Ws = Sheets("TEST") 'On the sheet call TEST

With Me.ComboBox1

For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row

.AddItem Ws.Range("A" & J)

Next J

End With

For I = 1 To 7

Me.Controls("TextBox" & I).Visible = True

Next I

End Sub

'Choose the product

Private Sub ComboBox1_Change()

Dim Ligne As Long

Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

ComboBox2 = Ws.Cells(Ligne, "B")

For I = 1 To 7

Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)

Next I

End Sub

Private Sub UserForm_Click()

End Sub

'Add new product button

Private Sub CommandButton1_Click()

Dim L As Integer

If MsgBox(" Do you want to add a new device ? ", vbYesNo, " Validate ") = vbYes Then

L = Sheets("TEST").Range("a65536").End(xlUp).Row + 1 'add something on the 1st empty row on the sheet TEST

Sheets("TEST").Range("A" & L).Value = ComboBox1

Sheets("TEST").Range("B" & L).Value = ComboBox2

Sheets("TEST").Range("C" & L).Value = TextBox1

Sheets("TEST").Range("D" & L).Value = TextBox2

Sheets("TEST").Range("E" & L).Value = TextBox3

Sheets("TEST").Range("F" & L).Value = TextBox4

Sheets("TEST").Range("G" & L).Value = TextBox5

Sheets("TEST").Range("H" & L).Value = TextBox6

Sheets("TEST").Range("I" & L).Value = TextBox7

End If

End Sub

'For the modification button

Private Sub CommandButton2_Click()

Dim Ligne As Long

Dim I As Integer

If MsgBox(" Do you want to modify this device ? ", vbYesNo, " Validate ") = vbYes Then

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

Ws.Cells(Ligne, "B") = ComboBox2

For I = 1 To 7

If Me.Controls("TextBox" & I).Visible = True Then

Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)

End If

Next I

End If

End Sub

'For the cancel button

Private Sub CommandButton3_Click()

Unload Me

End Sub

Cordialement,

Re,

Tu pouvais même remplacer partout Sheets("TEST") par Ws puisque tu as déclaré Ws au niveau module.

Rechercher des sujets similaires à "macro qui marche que onglet"