Thema Datum  Von Nutzer Rating
Antwort
21.03.2019 20:05:18 thomas
NotSolved
21.03.2019 21:52:48 Werner
NotSolved
22.03.2019 06:32:27 Gast12319
NotSolved
Blau Do while-Schleife verschachteln
22.03.2019 09:01:34 Gast14424
NotSolved
22.03.2019 06:38:45 Gast28562
NotSolved

Ansicht des Beitrags:
Von:
Gast14424
Datum:
22.03.2019 09:01:34
Views:
641
Rating: Antwort:
  Ja
Thema:
Do while-Schleife verschachteln

Erst einmal den "Schleifen - Fehler" ausgebügelt schaut der Code wohl so aus

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub Artikelzuordnung()
'Artikel aus Tabellenblatt Materialinformation zu dem jeweiligen Complaint zuordnen.
'leere Artikelnummernfelder mit n/a füllen
 
Dim s As Integer
Dim i As Integer
 
 
   ThisWorkbook.Worksheets("query_export_results").Activate
   i = 2
   Do While Cells(i, 1) <> " "
 
      s = 2
     
      Do While Cells(s, 1) <> " "
 
         If Cells(i, 1).Value = Worksheets("Material Information").Cells(s, 1) Then
 
            If Worksheets("Material Information").Cells(s, 3).Value = "Yes" Then
 
               Worksheets("Material Information").Cells(s, 10).Copy Destination:=Worksheets _
                ("query_export_results").Cells(i, 3) 'Gerätetyp in Complaintübersicht in Spalte C (Machine Type) kopieren
 
 
            Else
             
               Worksheets("Material Information").Cells(s, 5).Copy Destination:=Worksheets _
                 ("query_export_results").Cells(i, 4)       'Artikelnummer in Complaintübersicht in Spalte D kopieren
 
               Worksheets("Material Information").Cells(s, 6).Copy Destination:=Worksheets _
                 ("query_export_results").Cells(i, 5) 'Artikelbezeichnung in Complaintübersicht in Spalte E Kopieren.
 
            End If
             
         End If
 
         s = s + 1
          
      Loop
                 
      i = i + 1
       
   Loop
 
End Sub

Damit greift der Vergleich aber max. 1 x und dann knallt deine Variable s an das Ende seiner Fahnenstange - Loop bis max. Integer Zahl *)

*) arbeite ich mit Variablen die Zellzeilen ansprechen, dann wähle ich den "natürlichen" Datentyp LONG

Was in deinem Fall aber nur das sinnlose Hochzählen verlängert, denn

ThisWorkbook.Worksheets("query_export_results").Activate

Du operierst also aus einem aktiven Arbeitsblatt und vergleichst eine Zelle daraus mit einer Zelle aus einem anderen Arbeitsblatt - OHNE
der zweiten Zelle einen Bezug zum anderen mitzugeben

Do While Cells(i, 1) <> " "
      s = 2
   
      Do While Cells(s, 1) <> " "


Ergo werden hier nicht zwei Zellen miteinander verglichen, da VBA ohne fehlenden Bezug immer die Zelle aus dem aktiven Arbeitsblatt versteht

Zelle ist nicht leer und Zellinhalt = Zellinhalt, die Schleife wird nie unterbrochen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.03.2019 20:05:18 thomas
NotSolved
21.03.2019 21:52:48 Werner
NotSolved
22.03.2019 06:32:27 Gast12319
NotSolved
Blau Do while-Schleife verschachteln
22.03.2019 09:01:34 Gast14424
NotSolved
22.03.2019 06:38:45 Gast28562
NotSolved