You have to keep a reference to each individual Entry, in this case x. Each pass through the for overlays the previous x, so it no longer exists. So, using a dictionary below, so you can store everything in one container
## NOT tested - don't have time ## post back if there are problems self.entry_dict={} for x in self.listeF: ##global entree ## don't have to keep a reference to the Label ## since it isn't accessed anywhere else Label(self.fenetre, text=x, bg='#cecece', fg='black').grid(row=1, column=2, rowspan = R_span, pady = R_pady, sticky = W) y = Entry(self.fenetre, bg='black', fg='white') y.grid(row=1, column=3, rowspan=R_span, pady=R_pady, sticky = NW) self.entry_dict[x]=y print("entry_dict", self.entry_dict) ## self.listeF item --> tkinter instance def Entree_Get(self): for x in self.listeF: ## read the dict in this order print(x, self.entry_dict[x].get())